Hi Frank,

I made a new measurement, because VirtualBox is my favorite virtualization tool.

To recent results:

26 hours: VirtualBox, sources on shared disk (smb)
5 hours 36 minutes: VirtualBox, sources on virtual disk (vdi file)
2 hours 38 minutes: native WinXP, local disk

I added measurement this night with VM set to 2GB ram and 2CPUs while putting Qt on virtual disk (vdi file):
configure time: 22:41-22:59 = 0:18
compilation time: 22:04-4:22 = 5:18
total: 5:36

The result is exactly the same as in previous case (only 1 CPU and 512MB for VM). I was surprised, but neither memory, neither CPU seems to be bottleneck at this time.

My conclusion:
At first, the compilation of huge projects is not a typical task that normal uses are doing. Thus, not a problem. On most of the tasks, VirtualBox is running very nicely and very fast. I am very happy using VirtualBox for normal tasks.

Anyway, there is much of developers that develop for various platforms and VirtualBox is of an incredible help to avoid constant reboots among different OS'es. And the compilation work requires excessive amount of disk operations. Some utilities were reporting thousands disk operations per second in native WinXP (disk can not handle that, but the most of operations were probably handled using OS caches). Let's recall all the hierarchy of include files for each cpp file and tracking of file timestamps for dependencies evaluation. I am guessing that disk access is a bottleneck. And the situation is very bad when placing sources on smb mounted disk. CPU is loaded on 100% and most of the time is in the kernel - about 90% (smb disk). When running local disk (vdi file), kernel time is about 50%.

I am also suspicious about constant re-running of the compiler (cl.exe). The compiler is run for each cpp file and there is about 3600 of them. Not sure if that can made some additional load to VM (translation of binary code of cl.exe 3600x,...).

One more note: I am running on Core 1 Duo, T2400 @ 1.83 GHz on VirtualBox 3.0.4. According to Intel documentation, I am not sure, if full hardware VT is implemented in the processor (I expect not), although I had switched on VT check box in my VirtualBox all the time.

All the best,
John



Frank Mehnert wrote:
Hi Jan,

On Monday 12 October 2009, Jan Pečiva wrote:
Just to report some performance results. I was compiling Qt 4.5.2
(~120MB of sources) and I am attaching the performance results:

Compilation time:
26 hours: VirtualBox, sources on shared disk (smb)
5 hours 36 minutes: VirtualBox, sources on virtual disk (vdi file)
2 hours 38 minutes: native WinXP, local disk

hw+sw info:
Core 1 Duo (T2400), no VT in processor, 4GB ram, Ubuntu 8.04 with WinXP
guest and MSVC 2005 compiler

thank you for these values. But I think these values are not
comparable. For instance, if you are compiling the Qt sources
within a VM then you have assigned less memory to the VM than
the available RAM on the host (because the host operating
system needs memory as well). More RAM means usually more speed
since RAM can be used for disk caching.

Furthermore, as your host is a dual core but you didn't enable
VT-x (even the Core 1 Duo should have VT-x support), your guest
will be slower than the host as multiprocessing with VirtualBox
is only possible if VT-x/AMD-V is enabled.

To get more comparable values you had to limit the RAM of the
host to match the amount of RAM of the guest and you should
limit the number of CPU cores of the host to 1 (or enable VT-x
if that is possible).

Kind regards,

Frank



_______________________________________________
vbox-users mailing list
vbox-users@virtualbox.org
http://vbox.innotek.de/mailman/listinfo/vbox-users

Reply via email to