As I’ve been working on Windows XP x64, I am always interested to know how much difference of performance will VMWare and VirtualBox have on a 64-bit host system. VirtualBox has a native x64 version, but I haven’t yet found a native x64 version of VMWare. I guess this factor is likely to help VirtualBox to catch up with VMWare on x64 platform. Today I performed a benchmark for the two virtual machine applications by running MediaCoder in the guest system to transcode an DVD MPEG-2 PS clip of 720×480@29.97fps to an H.264 MP4 file of 320×240@29.97fps with MP3 audio. As there is no multi-processor support for VirtualBox and there is no sense to compare the video transcoding speed of a dual-core guest machine with a single-core one, I just chose Windows 2000 as the OS for guest machine.
As the following screenshots show, I tried to keep things exactly the same in the two guest systems. Of course the encoding settings of MediaCoder are exactly the same too. MediaCoder’s “display encoding frames” option is turned on so the graphics performance of the virtual machine can also be taken into account. MediaCoder uses SDL to render encoding frames.
Benchmark configurations
Host system:
- Intel Core2 DUO E6300 (@2.1Ghz)
- 4GB DDR2 667 memory
- WD 250GB SATA2 HDD
- Windows XP x64 SP2
Guest/virtual system:
- 512M memory
- 4GB IDE HDD
- Windows 2000 SP4
- MediaCoder 0.6.1.4045
Benchmark results
VMWare Server 1.0.4 build 56528:
- Time elapsed: 51.5 seconds
- Encoding speed: 38.33fps
VirtualBox version 1.5.4 x64 build:
- Time elapsed: 53.4 seconds
- Encoding speed: 36.99fps
The following is the performance of the same transcoding on the host machine. Please note that it is not possible to completely disable the utilization of one core of the processor, even if x264 is not working in multi-threading mode, because the audio encoding will still be done in a separate thread in MediaCoder. Fortunately, I am not doing a benchmark to compare the performance of virtual machine and real machine. So the results on the host system are just for reference.
Host system (1 thread for x264)
- Time elapsed: 34.7 seconds
- Encoding speed: 57.02fps
Host system (2 threads for x264)
- Time elapsed: 24.0 seconds
- Encoding speed: 82.49fps
Conclusion
VMWare is always believed to be far ahead of other virtual machine softwares, including its near-native performance and its guest system dual-processor support which most open-source virtual machine softwares don’t have. However, today’s benchmark shows that the performance of VirtualBox is quite close to (only 3.4% slower) that of VMWare on x64, at least for CPU-intensive computational tasks in a single-processor guest machine.