Virtualiseringsmiljöer har varit heta varor för Mac-användare ända sedan Apple började använda Intel-processorer i sina datorer. Redan innan Intel kom fanns emuleringsprogram tillgänglig som gjorde det möjligt för Mac-användare att köra Windows och Linux.
Men emuleringen var långsam, med hjälp av ett abstraktionslager för att översätta x86-programmeringskod till koden som användes av PowerPC-arkitekturen på tidigare Mac-datorer. Detta abstraktionsskikt behövde inte bara översättas för CPU-typ utan också alla hårdvarukomponenter. I huvudsak var abstraktionsskiktet tvunget att skapa programvaruekvivalenter till grafikkort, hårddiskar, serieportar etc. Resultatet blev en emuleringsmiljö som kunde köra Windows eller Linux men som var kraftigt begränsad i både prestanda och de operativsystem som kunde användas.
Med tillkomsten av Apples beslut att använda Intel-processorer försvann hela behovet av emulering. I dess ställe kom möjligheten att köra andra operativsystem direkt på en Intel Mac. Om du vill köra Windows direkt på en Mac som ett alternativ vid uppstart kan du använda Boot Camp, ett program som Apple tillhandahåller som ett praktiskt sätt att installera Windows i en multiboot-miljö.
Men många användare behöver ett sätt att köra Mac OS och ett andra OS samtidigt. Parallels, och senare VMWare och Sun, förde denna funktion till Mac med virtualiseringsteknik. Virtualisering liknar i konceptet emulering, men eftersom Intel-baserade Mac-datorer använder samma hårdvara som vanliga PC-datorer, finns det inget behov av att skapa ett hårdvaruabstraktionslager i programvara. Istället kan Windows- eller Linux-programvaran köras direkt på hårdvaran, vilket ger hastigheter som kan vara nästan lika snabba som om gästoperativsystemet kördes på datorn.
Och det är frågan som våra benchmarktest försöker svara på. Lever de tre stora aktörerna inom virtualisering på Mac - Parallels Desktop för Mac, VMWare Fusion och Sun VirtualBox - upp till löftet om nästan naturlig prestanda?
Vi säger "nästan naturligt" eftersom alla virtualiseringsmiljöer har vissa overhead som inte kan undvikas. Eftersom den virtuella miljön körs samtidigt som det "inbyggda" operativsystemet (OS X, nu macOS), måste det finnas delning av hårdvaruresurser. OS X måste också tillhandahålla vissa tjänster till virtualiseringsmiljön, såsom fönster och kärntjänster. Kombinationen av dessa tjänster och resursdelning tenderar att begränsa hur väl det virtualiserade operativsystemet kan fungera.
För att svara på frågan kommer vi att utföra benchmark-tester för att se hur bra de tre stora virtualiseringsmiljöerna klarar sig med Windows.
Testmetod
Tom Nelson. Lifewire, 2016.
Vi kommer att använda två olika, populära, plattformsoberoende testsviter. Den första, CineBench 10, utför ett verkligt test av en dators CPU och dess grafikkorts förmåga att återge bilder. Det första testet använder processorn för att återge en fotorealistisk bild, med CPU-intensiva beräkningar för att återge reflektioner, omgivande ockultation, områdesbelysning och skuggning med mera. Testet utförs med en enda CPU eller kärna och upprepas sedan med alla tillgängliga CPU:er och kärnor. Resultatet ger en referensprestandagrad för datorn med en enda processor, en grad för alla CPU:er och kärnor, och en indikation på hur väl flera kärnor eller CPU:er används.
Det andra CineBench-testet utvärderar prestandan för datorns grafikkort med OpenGL för att återge en 3D-scen medan en kamera rör sig inom scenen. Det här testet avgör hur snabbt grafikkortet kan prestera samtidigt som scenen återges korrekt.
Den andra testsviten är GeekBench 2.1.4, som testar processorns heltals- och flyttalsprestanda, testar minne med ett enkelt läs-/skrivprestandatest och utför ett strömtest som mäter minnesbandbredden. Resultaten av uppsättningen tester kombineras för att producera en enda GeekBench-poäng. Vi kommer också att dela ut de fyra grundläggande testseten (heltalsprestanda, flytande punktsprestanda, minnesprestanda och strömprestanda), så att vi kan se styrkorna och svagheterna i varje virtuell miljö.
GeekBench använder ett referenssystem baserat på en PowerMac G5 @1,6 GHz. GeekBench-poäng för referenssystemen är normaliserade till 1000. Varje poäng högre än 1000 indikerar en dator som presterar bättre än referenssystemet.
Eftersom resultaten från båda benchmarksviterna är något abstrakta kommer vi att börja med att definiera ett referenssystem. I det här fallet kommer referenssystemet att vara den värddator som används för att köra de tre virtuella miljöerna (Parallels Desktop för Mac, VMWare Fusion och Sun Virtual Box). Vi kör båda benchmark-sviterna på referenssystemet och använder den siffran för att jämföra hur väl de virtuella miljöerna presterar.
Alla tester kommer att utföras efter en ny start av både värdsystemet och den virtuella miljön. Både värden och den virtuella miljön kommer att ha alla anti-malware- och antivirusprogram inaktiverade. Alla virtuella miljöer kommer att köras inom ett standard OS X-fönster eftersom detta är den vanligaste metoden som används i alla tre miljöerna. När det gäller de virtuella miljöerna kommer inga användarapplikationer att köras förutom riktmärkena. På värdsystemet, förutom den virtuella miljön, körs inga andra användarapplikationer än en textredigerare för att göra anteckningar före och efter testning, men aldrig under själva testprocessen.
Benchmark-resultat för Host System Mac Pro
Tom Nelson. Lifewire, 2016.
Systemet som kommer att vara värd för de tre virtuella miljöerna (Parallels Desktop för Mac, VMWare Fusion och Sun VirtualBox) är en 2006-utgåva av en Mac Pro:
Mac Pro (2006)
- Två Dual-Core 5160 Zeon-processorer (4 kärnor tot alt) @ 3,00 GHz
- 4 MB per core L2-cache-RAM (16 MB tot alt)
- 6 GB RAM som består av fyra 1 GB-moduler och fyra 512 MB-moduler. Alla moduler är matchade par.
- En 1,33 GHz främre sidobuss
- Ett NVIDIA GeForce 7300 GT-grafikkort
- Två 500 GB Samsung F1 Series hårddiskar. OS X och virtualiseringsprogramvaran finns på startenheten; gäst-OSen lagras på den andra enheten. Varje enhet har sin egen oberoende SATA 2-kanal.
Resultaten av GeekBench- och CineBench-testerna på värddatorn Mac Pro bör ge den praktiska övre gränsen för prestanda vi bör se från någon av de virtuella miljöerna. Med det sagt vill vi påpeka att det är möjligt för en virtuell miljö att överträffa värdens prestanda i ett enskilt test. Den virtuella miljön kanske kan komma åt den underliggande hårdvaran och kringgå några av OS X:s OS-lager. Det är också möjligt för benchmark-testsviterna att luras av det prestandacachingsystem som är inbyggt i de virtuella miljöerna, och ge resultat som är mycket mer än den potentiella prestandan.
Benchmarkscores
GeekBench 2.1.4
- GeekBench Poäng: 6830
- Heltal: 6799
- Flytpunkt: 10786
- Minne: 2349
- Flöde: 2057
CineBench R10
- Rendering, enkel CPU: 3248
- Rendering, 4 CPU: 10470
- Effektiv hastighet upp från enstaka till alla processorer: 3,22
- Shading (OpenGL): 3249
Detaljerade resultat av benchmark-testerna finns tillgängliga i Virtualization Benchmark Test Gallery.
Benchmark-resultat för Parallels Desktop för Mac 5
Tom Nelson. Lifewire, 2016.
Vi använde den senaste versionen av Parallels (Parallels Desktop för Mac 5.0). Vi installerade färska kopior av Parallels, Windows XP SP3 och Windows 7. Vi valde dessa två Windows-operativsystem för testning eftersom vi tror att Windows XP representerar den stora majoriteten av nuvarande Windows-installationer på OS X och att Windows 7 i framtiden kommer att vara vanligaste gäst-OS som körs på Mac.
Innan testet började kollade vi efter och installerade alla tillgängliga uppdateringar för både den virtuella miljön och de två Windows-operativsystemen. När allt var uppdaterat konfigurerade vi Windows virtuella maskiner för att använda en enda processor och 1 GB minne. Vi stängde av Parallels och inaktiverade Time Machine och alla startobjekt på Mac Pro som inte behövdes för testet. Vi startade sedan om Mac Pro, lanserade Parallels, startade en av Windows-miljöerna och utförde de två uppsättningarna benchmark-tester. När testerna var klara kopierade vi resultaten till Mac för senare referens.
Vi upprepade sedan omstarten och lanseringen av Parallels för benchmark-testerna av det andra Windows-operativsystemet.
Slutligen upprepade vi ovanstående sekvens med gästoperativsystemet inställt på att använda 2 och sedan 4 processorer.
Benchmarkscores
GeekBench 2.1.4
- Windows XP SP3 (1, 2, 4 CPU): 2185, 3072, 4377
- Windows 7 (1, 2, 4 CPU): 2223, 2980, 4560
CineBench R10
- Windows XP SP3
- Rendering (1, 2, 4 CPU): 2724, 5441, 9644
- Shading (OpenGL) (1, 2, 4 CPU): 1317, 1317, 1320
CineBench R10
- Windows 7
- Rendering (1, 2, 4 CPU): 2835, 5389, 9508
- Shading (OpenGL) (1, 2, 4 CPU): 1335, 1333, 1375
Parallels Desktop för Mac 5.0 slutförde alla benchmark-tester. GeekBench såg bara mindre skillnader i prestanda mellan Windows XP och Windows 7, vilket är vad vi förväntade oss. GeekBench koncentrerar sig på en testprocessor och minnesprestanda, så vi förväntar oss att det ska vara en bra indikator på den underliggande prestandan i den virtuella miljön och hur väl den gör värd-Mac Pros hårdvara tillgänglig för gästoperativsystem.
CineBenchs renderingstest visade likaså konsistens över de två Windows-operativsystem. Återigen är detta att förvänta sig eftersom renderingstestet i stor utsträckning använder processorerna och minnesbandbredden som ses av gästoperativsystem. Skuggningstestet är en bra indikator på hur väl varje virtuell miljö har implementerat sin videodrivrutin. Till skillnad från resten av Macs hårdvara, görs grafikkortet inte tillgängligt direkt för de virtuella miljöerna. Detta beror på att grafikkortet kontinuerligt måste ta hand om displayen för värdmiljön och inte kan avledas till att endast visa gästmiljön. Detta gäller även om den virtuella miljön erbjuder ett alternativ för helskärmsvisning.
Detaljerade resultat av benchmark-testerna finns tillgängliga i Virtualization Benchmark Test Gallery.
Benchmark-resultat för VMWare Fusion 3.0
Tom Nelson. Lifewire, 2016.
Vi använde den senaste versionen av VMWare Fusion (Fusion 3.0). Vi installerade färska kopior av Fusion, Windows XP SP3 och Windows 7. Vi valde dessa två Windows-operativsystem för testning eftersom vi tror att Windows XP representerar den stora majoriteten av nuvarande Windows-installationer på OS X och att Windows 7 i framtiden kommer att vara vanligaste gäst-OS som körs på Mac.
Innan testningen började, letade vi efter och installerade alla tillgängliga uppdateringar för både den virtuella miljön och de två Windows-operativsystemen. När allt var uppdaterat konfigurerade vi Windows virtuella maskiner för att använda en enda processor och 1 GB minne. Vi stängde av Fusion och inaktiverade Time Machine och alla startobjekt på Mac Pro som inte behövdes för testet. Vi startade sedan om Mac Pro, lanserade Fusion, startade en av Windows-miljöerna och utförde de två uppsättningarna benchmark-tester. När testerna var klara kopierade vi resultaten till Mac för senare användning.
Vi upprepade sedan omstarten och lanseringen av Fusion för benchmarktesterna av det andra Windows-operativsystemet.
Slutligen upprepade vi ovanstående sekvens med gästoperativsystemet inställt på att använda 2 och sedan 4 processorer.
Benchmarkscores
GeekBench 2.1.4
- Windows XP SP3 (1, 2, 4 CPU):, 3252, 4406
- Windows 7 (1, 2, 4 CPU): 2388, 3174, 4679
CineBench R10
- Windows XP SP3
- Rendering (1, 2, 4 CPU): 2825, 5449, 9941
- Shading (OpenGL) (1, 2, 4 CPU): 821, 821, 827
CineBench R10
- Windows 7
- Rendering (1, 2, 4 CPU): 2843, 5408, 9657
- Shading (OpenGL) (1, 2, 4 CPU): 130, 130, 124
Vi stötte på problem med Fusion och benchmark-testerna. I fallet med Windows XP med en enda processor rapporterade GeekBench minnesströmprestanda i en hastighet bättre än 25 gånger hastigheten för värd Mac Pro. Detta ovanliga minnesresultat ökade GeekBench-poängen för den enda CPU-versionen av Windows XP till 8148. Efter att ha upprepat testet många gånger och fått liknande resultat, bestämde vi oss för att markera testet som ogiltigt och betrakta det som ett interaktionsproblem mellan benchmarktestet, Fusion, och Windows XP. Så gott vi kan säga, för den enda CPU-konfigurationen, rapporterade inte Fusion den korrekta hårdvarukonfigurationen till GeekBench-applikationen. GeekBench och Windows XP fungerade dock felfritt med två eller flera processorer valda.
Vi hade också problem med Fusion, Windows 7 och CineBench. När vi körde CineBench under Windows 7 rapporterade det att ett generiskt grafikkort var den enda tillgängliga grafikhårdvaran. Medan det generiska grafikkortet kunde köra OpenGL, gjorde det det i en urusel takt. Detta kan ha varit resultatet av att värddatorn Mac Pro hade ett gamm alt NVIDIA GeForce 7300-grafikkort. Fusions systemkrav föreslår ett modernare grafikkort. Vi tyckte dock att det var intressant att CineBench-skuggningstestet under Windows XP körde utan några problem.
Förutom de två egenheter som nämns ovan var Fusions prestanda i nivå med vad vi förväntade oss av en väldesignad virtuell miljö.
Detaljerade resultat av benchmark-testerna finns tillgängliga i Virtualization Benchmark Test Gallery.
Benchmark-resultat för Sun VirtualBox
Tom Nelson. Lifewire, 2016.
Vi använde den senaste versionen av Sun VirtualBox (VirtualBox 3.0). Vi installerade färska kopior av VirtualBox, Windows XP SP3 och Windows 7. Vi valde dessa två Windows-operativsystem för testning eftersom vi tror att Windows XP representerar den stora majoriteten av nuvarande Windows-installationer på OS X och att Windows 7 i framtiden kommer att vara vanligaste gäst-OS som körs på Mac.
Innan testningen började, letade vi efter och installerade alla tillgängliga uppdateringar för både den virtuella miljön och de två Windows-operativsystemen. När allt var uppdaterat konfigurerade vi Windows virtuella maskiner för att använda en enda processor och 1 GB minne. Vi stängde av VirtualBox och inaktiverade Time Machine och alla startobjekt på Mac Pro som inte behövs för testet. Vi startade sedan om Mac Pro, lanserade VirtualBox, startade en av Windows-miljöerna och utförde de två uppsättningarna av benchmark-tester. När testerna var klara kopierade vi resultaten till Mac för senare användning.
Vi upprepade sedan omstarten och lanseringen av Fusion för benchmarktesterna av det andra Windows-operativsystemet.
Slutligen upprepade vi ovanstående sekvens med gästoperativsystemet inställt på att använda 2 och sedan 4 processorer.
Benchmarkscores
GeekBench 2.1.4
- Windows XP SP3 (1, 2, 4 CPU): 2345,,
- Windows 7 (1, 2, 4 CPU): 2255, 2936, 3926
CineBench R10
- Windows XP SP3
- Rendering (1, 2, 4 CPU): 7001,,
- Shading (OpenGL) (1, 2, 4 CPU): 1025,,
CineBench R10
- Windows 7
- Rendering (1, 2, 4 CPU): 2570, 6863, 13344
- Shading (OpenGL) (1, 2, 4 CPU): 711, 710, 1034
Sun VirtualBox och våra bänktestapplikationer stötte på ett problem med Windows XP. Specifikt kunde både GeekBench och CineBench inte se mer än en enda CPU, oavsett hur vi konfigurerade gästoperativsystemet.
När vi testade Windows 7 med GeekBench märkte vi att användningen av flera processorer var otillräcklig, vilket resulterade i de lägsta poängen för 2 och 4 CPU-konfigurationer. Enprocessorprestanda verkade vara i nivå med de andra virtuella miljöerna.
CineBench kunde inte heller se mer än en enda processor när Windows XP kördes. Dessutom gav renderingstestet för versionen med en processor av Windows XP ett av de snabbaste resultaten och överträffade till och med själva Mac Pro. Vi försökte köra om testet några gånger; alla resultat låg inom samma intervall. Vi tror att det är säkert att krita upp renderingsresultaten för Windows XP med en enda CPU till ett problem med VirtualBox och hur den använder processorer.
Vi såg också en konstig stöt i renderingsresultaten för 2 och 4 CPU-tester med Windows 7 och i varje fall, renderingen mer än fördubblades i hastighet när man gick från 1 till 2 processorer och från 2 till 4 processorer. Den här typen av prestandaökning är osannolik, och återigen kommer vi att räkna upp det till VirtualBox implementering av stöd för flera processorer.
Med alla problem med VirtualBox benchmarktestning, kan de enda giltiga testresultaten vara de för en enda CPU under Windows 7.
Detaljerade resultat av benchmark-testerna finns tillgängliga i Virtualization Benchmark Test Gallery.
Resultaten
När alla benchmark-tester är gjorda är det dags att återkomma till vår ursprungliga fråga.
Lever de tre stora aktörerna inom virtualisering på Mac (Parallels Desktop för Mac, VMWare Fusion och Sun VirtualBox) upp till löftet om nästan naturlig prestanda?
Svaret är blandat. Ingen av virtualiseringskandidaterna i våra GeekBench-tester kunde mäta sig med prestanda hos värddatorn Mac Pro. Det bästa resultatet spelades in av Fusion, som kunde uppnå nästan 68,5% av värdens prestation. Parallellerna låg tätt efter på 66,7%. Att ta upp baksidan var VirtualBox, på 57,4%.
När vi tittade på resultaten av CineBench, som använder ett mer verkligt test för att rendera bilder, var de mycket nära värdens poäng. Återigen var Fusion i toppen av renderingstesterna och uppnådde 94,9 % av värdens prestanda. Paralleller följde på 92,1%. VirtualBox kunde inte på ett tillförlitligt sätt slutföra renderingstestet, vilket slog det ur strid. I en iteration av renderingstestet rapporterade VirtualBox att den presterade 127,4 % bättre än värden, medan den i andra inte kunde starta eller avsluta.
Skuggningstestet, som tittar på hur bra grafikkortet presterar med OpenGL, gick sämst av alla virtuella miljöer. Bäst presterande var Parallels, som nådde 42,3 % av värdens kapacitet. VirtualBox var tvåa på 31.5%; Fusion kom på tredje plats med 25,4%.
Att välja en total vinnare är något vi överlåter till slutanvändaren. Varje produkt har sina plus och minus, och i många fall är benchmarksiffrorna så nära att om man upprepar testerna kan ställningen förändras.
Vad benchmarktestresultaten visar är att universellt sett är förmågan att använda grafikkortet det som håller den virtuella miljön tillbaka från att vara en fullständig ersättning för en dedikerad PC. Som sagt, ett modernare grafikkort än vi har här skulle kunna ge högre prestanda i skuggtestet, särskilt för Fusion, vars utvecklare föreslår grafikkort med högre prestanda för bästa resultat.
Du kommer att märka att vissa testkombinationer (virtuell miljö, Windows-version och benchmark-test) visade problem, antingen orealistiska resultat eller misslyckande med att slutföra ett test. Dessa typer av resultat bör inte användas som indikatorer på problem med en virtuell miljö. Benchmark-tester är ovanliga applikationer att försöka köra i en virtuell miljö. De är utformade för att mäta prestanda hos fysiska enheter, som den virtuella miljön kanske inte tillåter dem att komma åt. Detta är inte ett fel i den virtuella miljön, och i verklig användning har vi inte upplevt problem med de allra flesta Windows-program som körs under ett virtuellt system.
Alla virtuella miljöer vi testade (Parallels Desktop för Mac 5.0, VMWare Fusion 3.0 och Sun VirtualBox 3.0) ger utmärkt prestanda och stabilitet vid daglig användning och bör kunna fungera som din primära Windows-miljö under större delen av dagen dagliga ansökningar.