VMware Fusion, Parallels Desktop, and VirtualBox

A review, benchmarks, and experience.

Executive Summary

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.

Technical Summary

Software Version
VMware Fusion 3.1.1 (282344)
Parallels Desktop 6.0.11826 (r611899)
VirtualBox 3.2.10 (r66523)

Virtual machine configuration:

Setting Value
RAM 512MB
HD 20GB
Cores 2

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.

Results

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)

Experience

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

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.

IRQL_NOT_LESS_OR_EQUAL

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 Fusion

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.

VirtualBox

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.

Summary

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.

One thought on “VMware Fusion, Parallels Desktop, and VirtualBox

  1. So for Max Os and linux would you say virtualbox is the way to go for nothing but Linux virtual machines ? – I have a host machine that I have mac os running on 3 ssd drives 24 gigs of ram and an i7 processor — currently using parallels to host Linux machines for rendering – now I need to build one more – and am considering pure Linux for the hole thing – I know virtualbox will run on a headless server – parallels wants 1000/2000$ for Thier server version that dose not require to be logged In …….crazy

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>