Performance considerations for a Windows 7 guest on a Ubuntu Natty x64 host: bitness (32-bit vs. 64-bit), guest settings and file access

0

I want to setup a virtual machine running Windows 7, for compilation and development of a native C++ application using Visual Studio. I have 8 GB RAM on the host with an Intel T9600 Dual-Core CPU, running Ubuntu Natty x64. I wish I had a more recent i7, but I don't -- so I need to get the best out of my hardware.

The main bottleneck is the compilation of my C++ application. I am switching from a real Windows 7 installation, the compilation just got slower by about an order of magnitude.

1) Would it improve the compilation times if I used a 64-bit Windows as guest -- at the obvious expense of increased RAM usage? Can anyone point me to a performance evaluation?

2) Are there any settings in the guest that can affect CPU performance?

3) What is faster -- local disk I/O in the guest or networked to the host via Samba?

These three questions are related, but don't answer my question.

krlmlr

Posted 2011-09-27T09:33:07.963

Reputation: 572

Try using VMWare player, workstation. I noticed that they are much faster than VirtualBox. Again: This is just my personal experience. – Apache – 2011-09-28T22:28:54.967

Thanks for sharing. Does this refer specifically to a Ubuntu host? – krlmlr – 2011-09-28T23:06:19.997

No, it's just faster generally. I mean... Windows host, Linux host, Windows guest, Linux guest. I've tried almost every possible combination (both with VMWare and Virtualbox). VMWare outperforms VirtualBox all the time. Of course, native tests may come close to each others, but it feels much snappier, faster. Lighter on my PC. – Apache – 2011-09-29T22:19:41.670

Answers

1

  1. Simply installing a 64-bit W7 will not use more RAM. Also if your app is 32-bits, installing a 64-bit OS would require you to be confident with cross-compiling.
  2. You should definitely assign both cores to the VM if you haven't done so. Also activating the CPU virtualization options, as well as nested pagination should yield better results. Activating 2D/3D video acceleration, too.
  3. Local disk I/O obviously, you don't need to go through networking stacks/layers

What will really improve your VM performance is disabling any useless processes on the guest OS (like Aero for example) and assigning the VM more RAM (which will make the host slower).

m0skit0

Posted 2011-09-27T09:33:07.963

Reputation: 1 317

1.: What about always having 32- and 64-bit system DLLs loaded at the same time in a 64-bit Windows? My experience suggests that RAM usage is much higher in Win64. Also, Visual Studio 2008 is a 32-bit process, no need for cross-compilation here. Aero: Ubuntu is the host we have Compiz :-) – krlmlr – 2011-09-27T12:34:42.153

RAM usage being higher doesn't mean the VM will get that RAM. You have to configure the VM to give it that RAM. Even if VS2008 is a 32-bit process, that doesn't mean the compiler will compile to a Win32 target if not told so. And about Aero, I know you've Compiz. I'm talking about your guest machine, not the host. You should think about them as 2 completely different machines, like 2 different PCs, almost all the time. Disable visual effects and useless stuff on the W7 guest so it runs faster. – m0skit0 – 2011-09-27T14:18:19.510