[edytuj # 2] Jeśli ktokolwiek z VMWare może trafić do mnie z kopią VMWare Fusion, byłbym bardziej niż szczęśliwy, mogąc zrobić to samo, co porównanie VirtualBox vs VMWare. Podejrzewam, że hypervisor VMWare będzie lepiej dostrojony do hiperwątkowania (zobacz też moją odpowiedź)
Widzę coś ciekawego. Gdy zwiększam liczbę rdzeni na mojej maszynie wirtualnej z systemem Windows 7 x64, całkowity czas kompilacji zwiększa się zamiast maleć. Kompilacja jest zwykle bardzo dobrze dostosowana do przetwarzania równoległego, ponieważ w środkowej części (mapowanie zależności zależności) można po prostu wywołać instancję kompilatora w każdym pliku .c / .cpp / .cs / cokolwiek, aby zbudować częściowe obiekty do pobrania przez linker nad. Tak więc wyobrażam sobie, że kompilacja bardzo dobrze skalowałaby się z liczbą rdzeni.
Ale widzę:
- 8 rdzeni: 1,89 sek
- 4 rdzenie: 1,33 sek
- 2 rdzenie: 1,24 sek
- 1 rdzeń: 1,15 sek
Czy jest to po prostu artefakt projektowy ze względu na implementację hiperwizora określonego dostawcy (w moim przypadku typ 2: virtualbox) lub coś bardziej wszechobecnego na większej liczbie maszyn wirtualnych, aby uprościć implementacje hiperwizora? Biorąc pod uwagę tak wiele czynników, wydaje mi się, że jestem w stanie argumentować zarówno za, jak i przeciw takiemu zachowaniu - więc jeśli ktoś wie o tym więcej niż ja, chętnie przeczytam twoją odpowiedź.
Dzięki Sid
[ edycja: adresowanie komentarzy ]
@MartinBeckett: Kompilacje na zimno zostały odrzucone.
@MonsterTruck: Nie można znaleźć projektu typu open source do bezpośredniej kompilacji. Byłoby świetnie, ale nie mogę teraz spieprzyć mojego dewelopera env.
@Mr Lister, @philosodad: Mają 8 wątków, używając VirtualBox, więc powinno być mapowanie 1: 1 bez emulacji
@Thorbjorn: Mam 6,5 GB na maszynę wirtualną i niewielki projekt VS2012 - jest mało prawdopodobne, że podmieniam / wyrzucam do kosza plik stronicowania.
@Wszystkie: Jeśli ktoś może wskazać na projekt VS2010 / VS2012 typu open source, może to być lepsze odniesienie do społeczności niż mój (zastrzeżony) projekt VS2012. Wydaje się, że Orchard i DNN wymagają dostrajania środowiska w celu skompilowania w VS2012. Naprawdę chciałbym zobaczyć, czy ktoś z VMWare Fusion też to widzi (dla przedziałów VMWare vs VirtualBox)
Szczegóły testu:
- Sprzęt: Macbook Pro Retina
- Procesor: Core i7 @ 2.3Ghz (czterordzeniowy, hiperwątkowy = 8 rdzeni w menedżerze zadań Windows)
- Pamięć: 16 GB
- Dysk: 256 GB SSD
- System operacyjny: Mac OS X 10.8
- Typ maszyny wirtualnej: VirtualBox 4.1.18 (hypervisor typu 2)
- System operacyjny gościa: Windows 7 x64 SP1
- Kompilator: VS2012 kompiluje rozwiązanie z 3 projektami platformy Azure w języku C #
- Czas kompilacji mierzony jest za pomocą wtyczki VS2012 o nazwie „VSCommands”
- Wszystkie testy przebiegają 5 razy, pierwsze 2 są odrzucane, a ostatnie 3 uśredniane