[編集#2] VMWareの誰かがVMWare Fusionのコピーを見つけたら、VirtualBoxとVMWareの比較と同じようにできるとうれしいです。どういうわけか、VMWareハイパーバイザーはハイパースレッディング用に調整されると思う(私の回答も参照)
私は何か奇妙なものを見ています。Windows 7 x64仮想マシンのコア数を増やすと、全体的なコンパイル時間が減少する代わりに増加します。コンパイルは通常、並列処理に非常に適しています(中間部分(依存関係のマッピング後)で、各.c / .cpp / .cs / whateverファイルでコンパイラインスタンスを呼び出して、リンカーが取得する部分オブジェクトを構築することができます)以上。ですから、実際には、コアの数でコンパイルが非常にうまくいくと想像していました。
しかし、私が見ているのは:
- 8コア:1.89秒
- 4コア:1.33秒
- 2コア:1.24秒
- 1コア:1.15秒
これは、単に特定のベンダーのハイパーバイザー実装(私の場合はtype2:virtualbox)による設計成果物なのか、ハイパーバイザー実装をより単純にするためにより多くのVMに広がるものなのでしょうか?非常に多くの要因があるので、私はこの振る舞いについて賛否両論を立てることができるようです-だから誰かが私よりもこのことを知っているなら、あなたの答えを読んでみたいです。
どうもありがとう
[ 編集:コメントのアドレス指定 ]
@MartinBeckett:コールドコンパイルは破棄されました。
@MonsterTruck:直接コンパイルできるオープンソースプロジェクトが見つかりませんでした。素晴らしいと思いますが、今は私の開発環境を台無しにすることはできません。
@Mr Lister、@ philosodad:VirtualBoxを使用して8つのハードウェアスレッドがあるため、エミュレーションなしの1:1マッピングである必要があります
@Thorbjorn:VM用に6.5GBと小さなVS2012プロジェクトがあります-ページファイルをゴミ箱に入れたり出したりすることはほとんどありません。
@All:誰かがオープンソースのVS2010 / VS2012プロジェクトを指すことができれば、それは私の(独自の)VS2012プロジェクトよりも良いコミュニティリファレンスかもしれません。OrchardとDNNは、VS2012でコンパイルするために環境を調整する必要があるようです。VMWare Fusionを使用している人にもこれが表示されるかどうかを確認したい(VMWareとVirtualBoxの区分化の場合)
テストの詳細:
- ハードウェア:Macbook Pro Retina
- CPU:コアi7 @ 2.3Ghz(クアッドコア、ハイパースレッディング= Windowsタスクマネージャーで8コア)
- メモリー:16 GB
- ディスク:256GB SSD
- ホストOS:Mac OS X 10.8
- VMタイプ:VirtualBox 4.1.18(タイプ2ハイパーバイザー)
- ゲストOS:Windows 7 x64 SP1
- コンパイラ:3つのC#AzureプロジェクトでソリューションをコンパイルするVS2012
- 「VSCommands」と呼ばれるVS2012プラグインによるコンパイル時間の測定
- すべてのテストは5回実行され、最初の2回は破棄され、最後の3回は平均されます