Совершенно случайно, в новостях оверов, промелькнуло сообщение о сабже. И я бы не обратил на нее никакого внимания, если бы в этот момент у меня не спросили "какую-нить виртуальку под *nix". После mov сслылки собственно возникло желание проверить, а что же это такое. Пока скачивался .msi, я прочитал собственно текст - там слегка пинали низкую производительность Sun xVM Virtual Box. До этого мной эксплуатировалась Microsoft Virtual PC, поэтому и возникла мысль их сравнить. Для максимально быстрого получения результата были взяты наиболее доступные средства, из числа тех, что уже были под рукой (ris :)
:method
Для прогона тестов в каждой из вируталок использовалась "свежая" ось, поставленная с того же ris-образа, что и на реальной машине. Таким образом хотелось свести к минимуму зависимость от вариаций в виртуалке и облегчить выполнение задачи.
:float
Результаты в Prime95 25.2 оказались таковы (потери/разброс - тест прогонялся неоднократно, поэтому привожу только результаты):
| losses,% | RealSys | Sun xVM | VirtualPC |
| FFT length | 0/0.1 | 7/2.5 | 12/10 |
| trial factors | 0/0.7 | 36/12 | 22/22 |
То есть потери Sun xVM составляют [4..7]% в FFT length и [3..36]% в trial factors. Так как аналогичные диапазоны для VPC составляют [1..13]% и [2..22]% нельзя сказать, что в целом оно лучше. Кроме того большой разброс значений, вкупе с неоднократными прогонами, заставляет думать, что работа с памятью в VPC обладает кучей явлений резонансного типа, что совсем не здорово. Например, 1280K FFT length стабильно показывал потери порядка 1%, а 59 bit trial factors стабильно порядка 20%. В целом можно сказать, что на 1-2% VPC быстрее, чем xVM (потому что это - значения потерь, сравнивать надо величины[r100%+s4%:r100%+v1% && r100%+s7%:r100%+v13%]), и то не всегда, да и не заметна эта цифра на фоне потерь на виртуализацию порядка 15%.
:integer
Так как встроенному тесту WinRAR после того, как он у меня на связке VPC+rh2.4+wine20031118 намерял больше, чем на реальной машине, доверия у меня не осталось никакого, использовался тест из 7z.
| MIPS | RealSys | Sun xVM | VirtualPC |
| Упаковка | 2193 | 1941 | 1839 |
| Распаковка | 2191 | 2101 | 2055 |
То есть здесь xVM:VPC=[p11:16;u4:6]% - и при распаковке, и упаковке вперед на 2-5% (не забываем о +r100%) вырывается xVM.
:framebuffer
Так как еще одной из задач виртуалки является отображение происходящего, захотелось померить нечто вроде 2d-fill-rate. В ris-е у меня с незапамятных времен валяется wtware4.3.74, там подходящий тестик уже встроен. Технически это Xfree86, конечно же.
| 2D-Fill | 8bpp | 32bpp | ||||
| xVM | VPC | SoV | xVM | VPC | SoV | |
| 640x480 | 0.75 | 0.90 | 20% | 2.21 | 3.72 | 68% |
| 800x600 | 1.14 | 1.50 | 32% | 3.60 | 4.82 | 34% |
| 1024x768 | 1.92 | 2.06 | 7% | 6.49 | 7.08 | 9% |
| 1280x1024 | 3.45 | 2.98 | -14% | 11.82 | NA | *-6% |
На VPC тест 1280х1024х32 так и не смог стартовать, значение (*) получено экстраполяцией. Так же не удалось запустить ни на одной вируталке широкоформатные видеорежимы (вроде 1440х900). Реальная машина в тестах не участвовала. В среднем "по палате" получается преимущество xVM в процентов этак 19%. Однако в режимах с высоким разрешением VPC, когда (sic!) работает, выходит в лидеры =^.^= - было проведено несколько дополнительных измерений в 1280x1024x8, которые это подтвердили.
Вне конкурса были сняты данные для свернутого окна виртуалки, fullscreen и для VRDP (+относительно такого же обычного).
| xVM | VPC | SoV | |
| 1024x768x32hide | 5.76(+11%) | 6.43(+5%) | 12% |
| 1024x768x32full | 6.33(+2%) | 6.73(+9%) | 6% |
| 1024x768x32VRDP | 10.82(-67%) | NA | NA |
То есть сворачивание окошка виртуалки, как и его разворачивание, слегка ускоряет. А VRDP... ну что же, главное, что оно работает, а приличной скорости ни от RDP, ни от VNC в такой ситуации ожидать нельзя.
:text
Так что, в рамках xVM:VPC, можно считать, паритет. Однако скорее VPC не быстрее xVM, чем наоборот, тем более, что места, в которых VPC обходит xVM, мягко говоря, подозрительны. Зубчики, однако:
:base
Реальная машина имела следующую конфигурацию:
Motherboard: Abit AN7 (NF2)
Processor: Athlon XP [Barton] 2500+ @ 3200+
Memory: 512DDRx2 3-3-3-8
Disk: WDC_WD74 0ADFD (@build-in3112)
Video: Sapphire Radeon9600Pro Процессор специально взят без поддержки VT-x/AMD-V.
VPC=Microsoft Virtual PC 5.3.582.32
xVM=Sun xVM VirualBox 1.6.4
SoV="sun over vpc"~"преимущество xVM над VPC"
:end
В целом мне больше нравится xVM, особенно за нормальную работу PXE и сети (из-за этого я не сошелся с vmware) в целом, а также VRDP (а не VNC, как у qemu/xen). Но если говорить про xVM:VPC, то одних Guest Additions достаточно что бы склонится к xVM.
:disclaimer
Блин, даж и не знаю, что тут написать на этот раз. Наверное, поблагодарю Sun за прошлую конференцию, что я у них посетил ))) Хотя, наверное, надо было за xVM =^_^=