Добро пожаловать!
На многих компьютерах я испытывал низкую производительность 32-битных гостей, работающих на 64-битном хосте Linux (я использовал только семейство Debian). Наконец мне удалось собрать контрольные данные.
Я сделал эталонный тест, запустив собственный макрос VBA (который мы используем в нашей компании), который генерирует документ Word длиной 284 страницы, полный круговых диаграмм, таблиц и комментариев Excel. Макрос запускается как отдельная задача (исключая стандартные службы) в наборе идентично настроенных 32-разрядных систем Windows XP. Я измерил время (в секундах), необходимое для выполнения теста.
Компьютер (т.е. мой ноутбук Asus P53E) поддерживает как расширения VT-d, так и встроенную Windows XP. Он имеет 2-ядерный процессор, каждое ядро является многопоточным, поэтому в общей сложности у нас есть 4 преимущественно независимых исполнительных устройства.
Я использую последние версии VirtualBox 4.2 и VMWare Workstation 9.0 для Linux, установленные вместе на одном хосте (под управлением Mint 13 Maya), но никогда не запускаемые одновременно.
Результаты (в столбце Время) не менее точны, чем ± 10%
Вот результаты (извините за формат, но я не смог найти лучшего решения для таблиц в SO):
+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+
| Host software | # processor | Windows kernel | IO APIC | VT-x/AMD-V | 2D Video Accel | Time |
+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+
| VirtualBox | 1 | Advanced Configuration and Power Interface (ACPI) PC | 0 | 1 | 0 | 1139 |
| VirtualBox | 1 | Advanced Configuration and Power Interface (ACPI) PC | 0 | 1 | 1 | 1050 |
| VirtualBox | 1 | Advanced Configuration and Power Interface (ACPI) PC | 0 | 0 | 1 | 1644 |
| VirtualBox | 4 | ACPI Multiprocessor PC | 1 | 1 | 1 | 6809 |
| VMWare | 1 | ACPI Uniprocessor PC | | 1 | 1 | 1175 |
| VMWare | 4 | ACPI Multiprocessor PC | | 1 | 1 | 3412 |
| Native | 4 | ACPI Multiprocessor PC | | | | 1693 |
| Native | 1 | Advanced Configuration and Power Interface (ACPI) PC | | | | 1170 |
+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+
Вот поразительные выводы:
- Хотя я читал на форумах VirtualBox о ужасной производительности с 32-разрядным гостем на 64-разрядном хосте, VMWare также имеет проблемы по сравнению с собственным запуском, но все же в два раза быстрее (!) чем VBox.
- Хотя VBA по своей природе является однопоточным, вычисления в Excel, которые занимают гораздо больше половины общего времени вычислений, предположительно не являются таковыми. Таким образом, можно ожидать некоторого увеличения скорости при работе на 2+ ядрах («+» для гиперпоточности). То, что мы видим, это потеря скорости. И довольно большой тоже.
- Для VirtualBox расширение VT-d не имеет большого значения.
- Если у вас есть по крайней мере 6 независимых ядер, которые вы собираетесь использовать в гостевой среде, для многопроцессорного гостевого Windows в VirtualBox нет смысла в производительности.
- Если у вас нет как минимум 3 независимых ядер, которые вы собираетесь использовать в гостевой среде, в VMWare нет смысла в производительности для гостевой многопроцессорной Windows в гостевой среде.
Может кто-нибудь пролить свет на то, почему однопоточное ядро Windows намного быстрее, чем ядро SMP?