Stuart McLachlan
stuart at lexacorp.com.pg
Sat Mar 14 20:12:08 CDT 2009
On 14 Mar 2009 at 16:22, Rocky Smolin at Beach Access Software wrote:
> I put VPC on a Vista machine. I find that the virtual machines take a big
> performance hit - run and respond visibly slower than native mode. Do you
> find that as well?
Nope, but I've seen several reviews on the intertubes that say that VirtualBox is much
faster than MS VirtualPC.
A lot apparently depends on what you are doing.
1. It only takes a few seconds to boot an XP machine. Applications that I have on my
native Vista and on an XP VM load roughly twice as fast on the VM as on the main Vista
machine. SQL Server Management studio goes from about 15 seconds native to about 7
seconds in VM, similar improvements with Visual Studio 2005 and Office applications.
I suspect that a lot of this is because of the way it's all packed together on the Virtual Disk
and physical caching and physical disk reads are more efficient.
Once the application is running things get a bit more complicated.
I tried running some code on Access 2003 in both environments:
1. I tried the following string and numeric test:
Option Compare Database
Option Explicit
Function test1() As Double
Dim lngStart As Long
Dim x As Long
Dim y As Long
lngStart = Timer
For x = 1 To 300000000
y = y + 1
Next
test1 = Timer - lngStart
End Function
Function test2() As Double
Dim lngStart As Long
Dim x As Long
Dim a As String
Dim b As String
Dim c As String
a = "aaaaaaaaaaaa"
b = "bbbbbbbbbbbb"
c = "cccccccccccc"
lngStart = Timer
For x = 1 To 10000000
a = b
b = c
c = a
Next
test2 = Timer - lngStart
End Function
Function RunTests()
Dim dblStringMin As Double
Dim dblStringMax As Double
Dim dblStringAvg As Double
Dim dblLongMin As Double
Dim dbllongMax As Double
Dim dbllongAvg As Double
Dim dblResult As Double
Dim x As Long
dblStringMin = 99999
dblLongMin = 99999
For x = 1 To 10
dblResult = test1
If dblResult < dblLongMin Then dblLongMin = dblResult
If dblResult > dbllongMax Then dbllongMax = dblResult
dbllongAvg = dbllongAvg + dblResult
dblResult = test2
If dblResult < dblStringMin Then dblStringMin = dblResult
If dblResult > dblStringMax Then dblStringMax = dblResult
dblStringAvg = dblStringAvg + dblResult
Next
dbllongAvg = dbllongAvg / 10
dblStringAvg = dblStringAvg / 10
Debug.Print "Value", "Long", "String"
Debug.Print "Min", dblLongMin, dblStringMin
Debug.Print "Avg", dbllongAvg, dblStringAvg
Debug.Print "Max", dbllongMax, dblStringMax
End Function
The results were surprising:
VirtualBox XP:
Value Long String
Min 3.909 1.912
Avg 4.4354 2.4519
Max 5.049 2.997
Native Vista:
Value Long String
Min 3.85546875 3.08984375
Avg 4.41015625 3.43515625
Max 5.1796875 3.77734375
Nothing in the if for the arithmetic, but XP VB was a lot faster on the string manipulation
that running native on Vista.
2 I then ran Max's DAo/SQL tests:
Vista native machine:
SQL Insert Test: 00:00:04
DAO AddNew Test2: 00:00:09
XP VM:
SQL Insert Test:00:00:15
DAO AddNew Test2: 00:00:24
Here the XP VM is *much* slower than Native.
I suspect that while sequential reads from the Virtual Disk are very efficient, hence the good
loading times, random writes would have a lot more overhead.
***Damn**** - I was a bit concerend about the different precision displays on the first tests
on tow supposed identical applications, so I just checked my Versions:
XP/VBox is running Office 2003 SP1 (VBA 6.3)
Vista/Native is running Office 2003 SP3 (VBA 6,5)
so these are not 100% valid comparisons.
For comparison I ran the same tests on my Office 2007 VBox:
The result was essentially the same as the Office 2003 VBox.
Value Long String
Min 3.890625 2.0078125
Avg 4.43046875 2.4953125
Max 5.46875 3.00390625
and Max's DAO/SQL Test gave
SQL Insert Test 00:00:11
DAO AddNew Test2 00:00:19
which is about half way between A2k3 on XP/VBox and Native Vista
YMMV - I'll leave it up to individuals to decide for themselves, but for the way I use VMs I
have no concerns about any perfomance hit.
If anything the general impression/ user experience is that responses are better rather than
worse and the only place where you see a major slowdown is in applications that do a lot of
writing to disk.
Anyone care to do a similar set of tests on VirtualPC 2007 for comparison purposes?
--
Stuart
-------------- next part --------------
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any other MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.
---- File information -----------
File: Microsoft Office Access 2003.lnk
Date: 15 Mar 2009, 10:04
Size: 2601 bytes.
Type: Unknown