A review, benchmarks, and experience.
VMware hogs memory, VirtualBox is slow, and Parallels Desktop causes Windows XP Pro to crash. Parallels Desktop is the fastest and leanest (smallest memory footprint). VMware is rock solid… always does what it’s supposed to with reasonable efficiency. VirtualBox is free.
Virtual machine configuration:
All tests were performed with an install of Windows XP Professional updated to the latest updates at the time of this article and no virus scanner.
Benchmark results for compilation of a Java project I work on (lower is better). The compiler used is
javac that comes with the JDK. I compile the project using
make in Cygwin. These were run with 2 cores. For comparison I compiled the code on the host operating system using Mac OS X and the included JDK. It’s interesting to note that Parallels performed better than the native code, perhaps due to a more efficient JDK.
Time to compile a real world project in Java (dual core)
I did not do the tests for dual core in VirtualBox, so here are the results for single core for VMware, Parallels, and VirtualBox.
Time to compile a real world project in Java (single core)
And here is the memory usage for a single virtual machine instance. This is the real + the virtual memory for both the virtual machine process and the application process (if present, VirtualBox let’s you close the application process after the virtual machine is started, so there is 0 MB for the application process for VirtualBox). The measurement was taken after running the compilation of the Java project, this is an important point because Parallels does not allocate all the memory specified in the virtual machine settings. Instead, Parallels allocates however much memory is being used by the virtual machine, which will vary depending on how much memory the applications have allocated.
Total memory consumption (MB)
In this measurement the memory consumption of a freshly booted virtual machine is measured and broken up into real, virtual, application real, and application virtual. You’ll notice that Parallels Desktop’s memory usage is below the 512 MB the virtual machine was configured at! This is because Parallels dynamically allocates memory for the virtual machine process. VMware and VirtualBox allocate all the memory up front.
Memory consumption for a freshly booted virtual machine (MB)
Briefly, my experience was this: The VirtualBox experience was good, albeit slow, but I found it annoying to switch spaces in OS X because Ctrl-<arrow> wouldn’t work unless I pressed and released the Command key first. VMware gave me a solid and consistent experience with no hiccups, but that memory consumption makes me cringe. Parallels experience would have been great, had it not caused Windows XP to crash numerous times!!
Parallels Desktop really disappointed me with numerous Windows XP crashes. Here’s a summary of some of the crashes.
Installing Windows XP Professional using the automatic Parallels installation (Parallels installs XP for you from the CD) caused XP to crash near the end of the installation, every time! The crash displays a blue screen of death:
A problem has been detected and windows has been shut down to prevent damage to your computer.
So I installed XP manually (I did the clicking in the installation instead of Parallels) and I got this error:
Distributed Transaction Coordinator Setup Error.
Sub-component Distributed Transaction Coordinator raised an exception while processing the OC_COMPLETE_INSTALLATION setup message.
d:\nt\com\com1x\dtc\ntdtcsetup\src\cdtccore.cpp (line 611)
Error Code = 0xffffffff
The DTC service could not be installed.
Parallels hung Windows a couple times during Windows update. Here is an example of one time where it appears to be taking a long time downloading. So I started to download VMware Fusion after this screen was displayed for an hour. You can see VMware Fusion is downloading rather fast.
Sometimes Windows Update failed altogether:
You’ll notice in the background the accumulation of screen shots of various Parallels failures. There are no such failures for VMware or VirtualBox.
I don’t really like to go on like this about how many errors I encountered in Parallels Desktop… but I feel I have a duty to report the facts… however gruesome they may be for Parallels.
Once, I shut down Windows and Parallels did not power off the virtual machine after Windows finished shutting down. A subsequent boot and shutdown of Windows succeeded and Windows did not report a failed shutdown (confirming that Windows did indeed complete the shutdown).
The display drivers in Parallels seem a bit clunky, when I switch spaces in Mac OS X I get funny results and the virtual machine takes a while to redraw the screen correctly (this is a very brief, but noticeable delay, and is not present in VMware or VirtualBox).
Once, I was typing in the Parallels virtual machine and when I pressed the letter ‘t’ it showed up 4 times instead of once.
Overall I think Parallels Desktop 6 has lots of problems and bugs. This made for an inconsistent and frustrating experience… in fact, it was this experience that led me to write this review.
VMware proved to be consistent, clean, and fast experience. The memory consumption is high; higher than VirtualBox when you look at the Real memory only.
VMware has easy access control on shared folders; it’s easy to set a folder to “read only”. Parallels has no apparent feature, or at least it isn’t obvious. VirtualBox also easily allows for read only access.
One of my favorite features of VirtualBox is the comprehensive keyboard shortcuts. I guess I’m one of those keyboard power users at heart. VirtualBox has shortcuts for most everything you want to do, including shutting down and reseting the virtual machine. Neither Parallels or VMware have shortcuts for hardly anything.
VirtualBox is slower on the compilation test I performed. But it doesn’t appear so slow when clicking around. I’ve been using VirtualBox for years and have been pretty satisfied, but the slow compilation and an influx of money led me to explore alternatives.
I also have Linux installations I use for testing software, and they perform better than Windows under VirtualBox. In fact, compile times for this java project in Linux (Ubuntu 10) under VirtualBox beat all of the above at about 5 minutes 43 seconds.
The most annoying behavior of VirtualBox is that I must press the Command key before I can use Ctrl-<arrow> to switch spaces in Mac OS X. This is a highly specific behavior to how I work and have my computer configured, but VMware and Parallels allow me to switch spaces without releasing the keyboard first.
Parallels is the fastest of them all but the new version Parallels Desktop 6 seems to be buggy and needs some attention from the developers. VirtualBox is free and strong for Linux, but slow for Windows. VMware is a solid virtual machine with consistent behavior and performance, but uses lots of memory.