Today I did some testing on the performance of VMWare Fusion 3.1 regarding whether to use a 32-bit or a 64-bit guest system on a 64-bit host system. For the test I used:
- Machine: MacBook Pro 15” early 2010
- CPU: Intel Cor i5 2.4 GHz (Dual Core; 64-bit CPU)
- RAM: 4 GB 1067 MHz DDR3
- OS: Mac OS X 10.6.5 (with all updates)
- VMWare: VMWare Fusion 3.1.2 (332101)
For the testing I shut down all applications (that could be shut down) except for:
- VMWare Fusion (of course)
I also disabled Spotlight indexing for the duration of the test using (in Terminal):
$ mdutil -a -i off # use "-i on" to reenable indexing
For testing I used an Ubuntu 10.04 Server Edition Linux either in the x86 (32-bit) and in the x64 (64-bit) version. Each version got one CPU and 512 MB RAM assigned (default values). I installed all updates (as of 2010-12-17) and also installed the packages “psmisc” and “bc”. The kernel version was 2.6.32-26. The VMWare Tools were not installed.
I then started VMWare Fusion (Virtual Machine Library only for now), and then called “purge” in the Terminal to free all inactive, unused memory for more correct information on how much memory is actually free. I then ran “vm_stat” (in Terminal), started the virtual machine, and ran “vm_stat” again to get the amount of memory actually used by the virtual machine.
Inside the virtual machine (i.e. in Ubuntu) I stopped cron and rsyslog to prevent them from interrupting the test, determined the free disk space (df -h) and the free memory (free -ok), and then calculated Pi with 3000 digits:
$ time echo "scale=3000; 4*a(1)" | (bc -l >/dev/null)
The results of the comparison can be found in the table below:
|32-bit||64-bit||Difference on 64-bit|
|Time to calculate Pi:||9.585s||8.823s||-7.9%|
|Memory consumption on the host system (MacOS):||482.3 MB||648.2 MB||+34.4%|
|Total/Used/Free memory in the guest system (Ubuntu):||496.96 MB / 35.22 MB / 461.74 MB||493.62 MB / 126.89 MB / 366.73 MB||+260.3% (used only)|
|Disk usage in the guest system (Ubuntu):||560 MB||581 MB||+3.8%|
- CPU speed: A 32-bit guest system on a 64-bit host system runs slower than a 64-bit guest system.
- Memory consumption: 64-bit guest systems require significantly more memory on the host system and on the guest system. In fact on the guest system the memory consumption seem to tripple (for some unknown reasons).
- Disk usage: As expected, disk usage is higher on a 64-bit system , but only slightly.
Conclusions: If memory consumption is an issue on your system (i.e. if you have not so much memory), then select a 32-bit guest system. It’ll be slightly slower but also consume less memory. If memory consumption is not an issue, select a 64-bit guest system.