[edit # 2] Si quelqu'un de VMWare peut me frapper avec une copie de VMWare Fusion, je serais plus qu'heureux de faire la même chose qu'une comparaison VirtualBox vs VMWare. D'une certaine manière, je soupçonne que l'hyperviseur VMWare sera mieux réglé pour l'hyperthreading (voir aussi ma réponse)
Je vois quelque chose de curieux. À mesure que j'augmente le nombre de cœurs sur ma machine virtuelle Windows 7 x64, le temps de compilation global augmente au lieu de diminuer. La compilation est généralement très bien adaptée au traitement parallèle, car dans la partie centrale (mappage post-dépendance), vous pouvez simplement appeler une instance de compilateur sur chacun de vos fichiers .c / .cpp / .cs / any pour créer des objets partiels à prendre par l'éditeur de liens. plus de. J'aurais donc imaginé que la compilation serait en fait très bien adaptée à # de cœurs.
Mais ce que je vois c'est:
- 8 cœurs: 1,89 s
- 4 cœurs: 1,33 s
- 2 cœurs: 1,24 s
- 1 cœur: 1,15 s
Est-ce simplement un artefact de conception dû à l'implémentation de l'hyperviseur d'un fournisseur particulier (type2: virtualbox dans mon cas) ou quelque chose de plus omniprésent sur plus de machines virtuelles pour rendre les implémentations de l'hyperviseur plus simples? Avec autant de facteurs, je semble être en mesure de faire des arguments pour et contre ce comportement - donc si quelqu'un en sait plus que moi sur ce sujet, je serais curieux de lire votre réponse.
Merci Sid
[ modifier: adresser les commentaires ]
@MartinBeckett: Les compilations à froid ont été supprimées.
@MonsterTruck: Impossible de trouver un projet open source à compiler directement. Ce serait génial, mais je ne peux pas foutre mon env dev maintenant.
@Mr Lister, @philosodad: Avoir 8 threads hw, utilisant VirtualBox, donc devrait être un mappage 1: 1 sans émulation
@Thorbjorn: J'ai 6,5 Go pour la machine virtuelle et un petit projet VS2012 - il est très peu probable que j'échange dans / hors la corbeille du fichier d'échange.
@All: Si quelqu'un peut pointer vers un projet VS2010 / VS2012 open source, cela pourrait être une meilleure référence communautaire que mon projet VS2012 (propriétaire). Orchard et DNN semblent avoir besoin d'un ajustement de l'environnement pour être compilés dans VS2012. J'aimerais vraiment voir si quelqu'un avec VMWare Fusion le voit aussi (pour le compartimentage VMWare vs VirtualBox)
Détails du test:
- Matériel: Macbook Pro Retina
- CPU: Core i7 @ 2.3Ghz (quad core, hyper threaded = 8 cores in windows task manager)
- Mémoire: 16 Go
- Disque: 256 Go SSD
- Système d'exploitation hôte: Mac OS X 10.8
- Type de VM: VirtualBox 4.1.18 (hyperviseur de type 2)
- Système d'exploitation invité: Windows 7 x64 SP1
- Compilateur: VS2012 compile une solution avec 3 projets Azure C #
- Compilation de la mesure du temps par le plugin VS2012 appelé «VSCommands»
- Tous les tests sont exécutés 5 fois, les 2 premiers tests sont rejetés, les 3 derniers en moyenne