コンピュータの中に仮想のコンピュータを作る仮想環境は、元々はサーバ系から普及してきた技術ですが、性能向上もあって最近ではPCでも実用的になってきています。
分かりにくいと思うのですが、つまりこういうことですね。 Windows Vistaのパソコンの中に、ウィンドウの一つとして別のPCがあり、そこでWindows XPが動かせたりできる、と(やっぱり分かりにくいですかねw)。
Windowsで利用できる仮想化ソフトとしてはVMware、MicrosoftのVirtual PC、サン・マイクロシステムズのVirtualBoxあたりが御三家といったところでしょうか。
いずれも無償で利用可能なんですが、VMwareだけは無償利用可能なVMware Playerだと仮想マシンの実行はできても作成はできないようなので、Virtual PCとVirtualBoxを入れて、ひよひよさんのCrystalMark 2004R3でベンチマークをとってみました。
まず一番左が実機、右隣がVirtual PC、その次がVirtualBoxです。 ゲストOSはWindows XPに仮想環境用の補助ソフトをインストール済、実機は1280x1024、ゲストOSは1024x768のウィンドウモードで実行しています。 色数はすべて32bitで、…と思ったらWindows 7に標準実装されると言われているVirtual Windows XP(XP Mode)のβ版を試したところ、16bit色にしか対応してなかったのでVPCとVBOXも16bitの結果も載せました。
まず、CPUの演算能力(ALU、FPU)についてはVPC、VBOXとも実機の半分程度の能力となっています。 これは実機はデュアルコアなのに、VPCもVBOXも仮想PCのマルチコアに対応していないためで、それを除けば実機に遜色ないと言えます。
メモリアクセスについてはいずれも実機とほぼ同水準ですが、HDDはおかしなことになっています。 VPCは実機の8割弱といったところですが、VBOXは実機の4倍に達するイキオイです(笑) 確かにVBOXは仮想PCでATAだけでなくAHCIコントローラも提供してますし、体感でもVPCは実機より明らかに遅い(ベンチ以上に遅い気がします)、VBOXが上という気がしますが、それにしても実機を上回るのは何故でしょうね(^^;;
VWXPはVirtual PCに比べてハードディスクアクセスを改善してきたようです…、がこちらもVBOX程ではないですが実機の2倍程度になってますw
仮想環境のクセなんでしょうか。
グラフィック周りはVPCは貧弱です。
GDIは実機の7分の1、D2Dは4割程度、OpenGLに至っては5%程度にすぎません。
VWXPでは2D周りは若干改善されている可能性がありますが、本当に若干ですね…。
製品版ではどうなるのかわかりませんが、現在のβでみる限りVWXPでもビデオコントローラはTrio 32/64で認識されてるようなので、このままになってしまうのかな…。
VBOXはGDI、D2DではVPCの3倍、OpenGLでは19倍にも達します。
VBOXはビデオコントローラの3Dアクセラレーションに対応(標準では無効なものを設定で有効にしてます)しているおかげでしょうが、これはかなり立派なものです。
結論としては、ゲストOSのパフォーマンスは完全にVBOXの方が上だと思います。 VirtualBoxの3.0βではゲストOSのマルチコア対応、Direct3D 8/9のサポート等が行われるようですし、今後がますます期待ですね〜。 それに比べて、Virtual PCは次バージョンではようやくUSBがサポートされるものの、全体的には地味で、ビデオ周りの劇的な向上等はあまり期待できそうもない気がします。 ベンチにあらわれない、ホストとゲストのデータのやり取りや設定のしやすさはVirtual PCの方が上なんですけどね。
設定は分かってしまえばなんてことないし、これまでMicrosoft Officeの互換性の問題等から仕事でもVirtual PCを使ってきたのですが、VirtualBoxに乗り換えようかなと思います。
実機 | VPC 2007SP1 | VBOX 2.2.4 | VPC 2007SP1 | VWXPβ | VBOX 2.2.4 | |
---|---|---|---|---|---|---|
1280x1024 (32bit) | 1024x768 (32bit) | 1024x768 (32bit) | 1024x768 (16bit) | 1024x768 (16bit) | 1024x768 (16bit) | |
CrystalMark | 101826 | 46536 | 103310 | 45374 | 57529 | 101206 |
ALU | 20671 | 9994 | 10086 | 10059 | 10092 | 9987 |
Fibonacci | 8368 | 4135 | 4196 | 4168 | 4181 | 4111 |
Napierian | 3912 | 1867 | 1864 | 1870 | 1882 | 1867 |
Eratosthenes | 2875 | 1376 | 1385 | 1376 | 1383 | 1372 |
QuickSort | 5494 | 2594 | 2619 | 2623 | 2624 | 2615 |
FPU | 23297 | 11720 | 11781 | 10714 | 11767 | 11535 |
MikoFPU | 3541 | 1080 | 1066 | 1069 | 1084 | 1064 |
RandMeanSS | 12316 | 7056 | 7154 | 6072 | 7082 | 6941 |
FFT | 3870 | 1859 | 1844 | 1851 | 1867 | 1826 |
Mandelbrot | 3548 | 1703 | 1695 | 1700 | 1712 | 1682 |
MEM | 13530 | 13561 | 14065 | 13545 | 13224 | 13474 |
Read | 5716.20 MB/s | 4887.05 MB/s | 5188.95 MB/s | 4918.31 MB/s | 5111.90 MB/s | 4929.78 MB/s |
Write | 2373.75 MB/s | 3689.84 MB/s | 3839.68 MB/s | 3781.00 MB/s | 3355.69 MB/s | 3648.74 MB/s |
Read/Write | 2319.76 MB/s | 3419.37 MB/s | 3501.62 MB/s | 3284.66 MB/s | 3185.47 MB/s | 3365.63 MB/s |
Cache | 31008.98 MB/s | 15445.84 MB/s | 15152.84 MB/s | 15409.38 MB/s | 15516.70 MB/s | 15100.12 MB/s |
HDD | 10054 | 7885 | 40040 | 7911 | 18823 | 39607 |
Read | 82.20 MB/s | 40.88 MB/s | 554.57 MB/s | 38.79 MB/s | 119.79 MB/s | 455.39 MB/s |
Write | 67.88 MB/s | 51.63 MB/s | 271.60 MB/s | 53.47 MB/s | 124.19 MB/s | 336.22 MB/s |
RandomRead512K | 31.29 MB/s | 17.66 MB/s | 557.38 MB/s | 19.22 MB/s | 73.56 MB/s | 470.38 MB/s |
RandomWrite512K | 47.70 MB/s | 47.03 MB/s | 270.50 MB/s | 46.31 MB/s | 115.81 MB/s | 336.52 MB/s |
RandomRead 64K | 6.10 MB/s | 4.11 MB/s | 172.98 MB/s | 4.47 MB/s | 16.55 MB/s | 147.83 MB/s |
RandomWrite 64K | 16.21 MB/s | 35.85 MB/s | 130.10 MB/s | 35.62 MB/s | 50.64 MB/s | 133.09 MB/s |
GDI | 7783 | 1168 | 3413 | 757 | 1293 | 1653 |
Text | 4453 | 46 | 385 | 23 | 277 | 226 |
Square | 384 | 190 | 577 | 87 | 221 | 290 |
Circle | 1357 | 109 | 1646 | 54 | 549 | 670 |
BitBlt | 1589 | 823 | 805 | 593 | 246 | 467 |
D2D | 2822 | 1139 | 3695 | 1185 | 1601 | 6091 |
Sprite 10 | 1336.93 FPS | 239.90 FPS | 127.14 FPS | 351.32 FPS | 1035.75 FPS | 490.50 FPS |
Sprite 100 | 424.31 FPS | 135.34 FPS | 120.45 FPS | 148.76 FPS | 54.97 FPS | 413.83 FPS |
Sprite 500 | 109.02 FPS | 42.98 FPS | 87.47 FPS | 42.15 FPS | 16.73 FPS | 274.94 FPS |
Sprite 1000 | 55.73 FPS | 23.53 FPS | 68.97 FPS | 23.72 FPS | 12.59 FPS | 133.55 FPS |
Sprite 5000 | 11.62 FPS | 5.27 FPS | 23.98 FPS | 5.49 FPS | 8.86 FPS | 27.87 FPS |
Sprite 10000 | 5.82 FPS | 2.69 FPS | 12.38 FPS | 2.81 FPS | 7.93 FPS | 15.27 FPS |
OGL | 23669 | 1069 | 20230 | 1203 | 729 | 18859 |
Scene 1 | 10899 | 1016 | 9851 | 1158 | 696 | 8987 |
Lines (x1000) | 2068917 | 107400 | 1874100 | 147711 | 73845 | 1706127 |
Scene 2 CPU | 256 | 16 | 256 | 32 | 16 | 256 |
Scene 2 Score | 12770 | 53 | 10379 | 45 | 33 | 9872 |
Polygons (x1000) | 902306 | 385 | 656629 | 323 | 246 | 626096 |
Scene 2 CPU | 512 | 1 | 256 | 1 | 1 | 256 |
実機環境: C2D E6550 2.33GHz, Mem. 2GB, GeForce 7900GS, HDP725050GLA360, Vista Business SP2(32bit)
Virtual Windows XPのみ、実機OSはWindows 7 RC
ゲストOSはすべてWindows XP Professional SP3