[edit # 2] Если кто-нибудь из VMWare сможет достать мне копию VMWare Fusion, я буду более чем счастлив сделать то же самое, что и сравнение VirtualBox с VMWare. Почему-то я подозреваю, что гипервизор VMWare будет лучше настроен для гиперпоточности (см. Мой ответ тоже)
Я вижу что-то любопытное. По мере увеличения количества ядер на моей виртуальной машине с Windows 7 x64 общее время компиляции увеличивается, а не уменьшается. Компиляция обычно очень хорошо подходит для параллельной обработки, так как в средней части (пост-зависимое отображение) вы можете просто вызвать экземпляр компилятора в каждом из ваших файлов .c / .cpp / .cs / независимо от того, чтобы создать частичные объекты для компоновщика над. Так что я предположил бы, что компиляция будет очень хорошо масштабироваться с # ядрами.
Но то, что я вижу, это:
- 8 ядер: 1,89 с
- 4 ядра: 1,33 сек
- 2 ядра: 1,24 с
- 1 ядро: 1,15 с
Является ли это просто артефактом проекта из-за реализации гипервизора конкретного поставщика (type2: virtualbox в моем случае) или чем-то более распространенным среди большего количества виртуальных машин, чтобы сделать реализации гипервизора более простыми? С таким количеством факторов я, похоже, могу аргументировать как за, так и против такого поведения - поэтому, если кто-то знает об этом больше, чем я, мне было бы интересно прочитать ваш ответ.
Спасибо Сид
[ редактировать: адресация комментариев ]
@MartinBeckett: холодные компиляции были отброшены.
@MonsterTruck: не удалось найти проект с открытым исходным кодом для прямой компиляции. Было бы здорово, но я не могу напортачить прямо сейчас.
@Mr Lister, @philosodad: иметь потоки 8 hw, используя VirtualBox, поэтому должно быть отображение 1: 1 без эмуляции
@ Torbjorn: у меня есть 6,5 ГБ для виртуальной машины и небольшой проект VS2012 - маловероятно, что я обмениваю / удаляю файл подкачки.
@All: Если кто-то может указать на проект VS2010 / VS2012 с открытым исходным кодом, это может быть лучшей рекомендацией сообщества, чем мой (собственный) проект VS2012. Orchard и DNN, кажется, нуждаются в настройке среды для компиляции в VS2012. Я действительно хотел бы видеть, видит ли кто-то с VMWare Fusion также это (для разделения VMWare против VirtualBox)
Детали теста:
- Аппаратное обеспечение: Macbook Pro Retina
- Процессор: Core i7 @ 2.3Ghz (четырехъядерный, гипер поточный = 8 ядер в диспетчере задач Windows)
- Память: 16 ГБ
- Диск: 256 ГБ SSD
- Хост ОС: Mac OS X 10.8
- Тип виртуальной машины: VirtualBox 4.1.18 (гипервизор типа 2)
- Гостевая ОС: Windows 7 x64 SP1
- Компилятор: VS2012 компилирует решение с 3 проектами C # Azure
- Измерение времени компиляции с помощью плагина VS2012 под названием «VSCommands»
- Все тесты проводятся 5 раз, первые 2 запуска отбрасываются, последние 3 усредняются