[edit # 2] Wenn irgendjemand von VMWare mich mit einer Kopie von VMWare Fusion schlagen kann, würde ich gerne das Gleiche tun wie ein Vergleich zwischen VirtualBox und VMWare. Irgendwie habe ich den Verdacht, dass der VMWare-Hypervisor besser auf Hyperthreading eingestellt ist (siehe auch meine Antwort).
Ich sehe etwas Neugieriges. Wenn ich die Anzahl der Kerne auf meiner virtuellen Windows 7 x64-Maschine erhöhe , erhöht sich die Gesamtkompilierungszeit, anstatt sie zu verringern. Das Kompilieren ist normalerweise sehr gut für die Parallelverarbeitung geeignet, da Sie im mittleren Teil (Post-Dependency-Mapping) einfach eine Compiler-Instanz für jede Ihrer .c / .cpp / .cs / whatever-Dateien aufrufen können, um Teilobjekte für den Linker zu erstellen Über. Ich hätte mir also vorgestellt, dass das Kompilieren tatsächlich sehr gut mit der Anzahl der Kerne skaliert.
Aber was ich sehe, ist:
- 8 Kerne: 1,89 Sek
- 4 Kerne: 1,33 Sek
- 2 Kerne: 1,24 Sek
- 1 Kern: 1,15 Sek
Handelt es sich lediglich um ein Entwurfsartefakt aufgrund der Hypervisor-Implementierung eines bestimmten Herstellers (Typ 2: VirtualBox in meinem Fall) oder um etwas, das auf mehreren VMs vorhanden ist, um Hypervisor-Implementierungen einfacher zu gestalten? Bei so vielen Faktoren kann ich Argumente sowohl für als auch gegen dieses Verhalten vorbringen. Wenn also jemand mehr darüber weiß als ich, wäre ich gespannt auf Ihre Antwort.
Danke Sid
[ Bearbeiten: Kommentare adressieren ]
@MartinBeckett: Cold-Compiles wurden verworfen.
@MonsterTruck: Es konnte kein OpenSource-Projekt gefunden werden, das direkt kompiliert werden konnte. Wäre toll, kann aber mein Entwicklungs-Env momentan nicht vermasseln.
@Mr Lister, @philosodad: Habe 8 hw Threads, benutze VirtualBox, sollte also 1: 1 Mapping ohne Emulation sein
@Thorbjorn: Ich habe 6,5 GB für die VM und ein kleines VS2012-Projekt - es ist ziemlich unwahrscheinlich, dass ich die Auslagerungsdatei ein- oder auslagere.
@All: Wenn jemand auf ein Open Source VS2010 / VS2012-Projekt verweisen kann, ist dies möglicherweise eine bessere Community-Referenz als mein (proprietäres) VS2012-Projekt. Orchard und DNN benötigen anscheinend eine Optimierung der Umgebung, um in VS2012 kompiliert werden zu können. Ich würde wirklich gerne sehen, ob jemand mit VMWare Fusion dies auch sieht (für VMWare vs. VirtualBox-Unterteilung)
Testdetails:
- Hardware: Macbook Pro Retina
- CPU: Core i7 bei 2,3 GHz (Quad-Core, Hyper-Threaded = 8 Kerne im Windows Task-Manager)
- Speicher: 16 GB
- Festplatte: 256 GB SSD
- Host-Betriebssystem: Mac OS X 10.8
- VM-Typ: VirtualBox 4.1.18 (Typ 2-Hypervisor)
- Gastbetriebssystem: Windows 7 x64 SP1
- Compiler: VS2012, das eine Lösung mit 3 C # Azure-Projekten kompiliert
- Kompilierzeiten messen mit dem VS2012-Plugin 'VSCommands'
- Alle Tests werden fünfmal ausgeführt, die ersten zwei werden verworfen, die letzten drei werden gemittelt