Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.

share|improve this question
Try using VMWare player, workstation. I noticed that they are much faster than VirtualBox. Again: This is just my personal experience. – Shiki Sep 28 '11 at 22:28
Thanks for sharing. Does this refer specifically to a Ubuntu host? – krlmlr Sep 28 '11 at 23:06
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. – Shiki Sep 29 '11 at 22:19
up vote 1 down vote accepted
  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).

share|improve this answer
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 Sep 27 '11 at 12:34
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 Sep 27 '11 at 14:18

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.