2011-06-07 6 views
2

ビルドサーバーの12コアすべてを利用しようとしていますが、/ M12を指定することができず、ビルドに12コアすべてを使用できません。/M4が限界であるかのように見えます。これは本当ですか?ビルドで12コアすべてを使用するためにできることはありますか?VCBuildで4つ以上のコアを使用する

私は、ビルドを実行するには、次のコマンドラインを使用しています:

"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" /M12 C:\Projects\solution1.sln 
私は、ビルドを実行するのにかかると、私が受け取る初期出力がどれくらい長い間に基づいて一つのコアを指定しているかのようビルドが扱い

1) Build started: Project: Project1, Configuration: Release 

私が代わりに/ M12のコマンドラインで/ M4を使用する場合は、ビルドがはるかに高速になり、私が開始出力としてこれを受け取る:

5) Build started: Project: Project5, Configuration: Release 
1) Build started: Project: Project1, Configuration: Release 
2) Build started: Project: Project2, Configuration: Release 
7) Build started: Project: Project7, Configuration: Release 

コアの数も指定しないようにしましたが、マシンにコアが1つだけあるか、/ M1を指定したかのように扱います。

私は、システム環境変数NUMBER_OF_PROCESSORSをチェックし、まだこれで任意の助けをいただければ幸い12

に設定されています。

-Seth

+0

ちょうど好奇心、'/M9'を扱うのだろうか? – Snowbear

+0

多分あなたは/ MC(0xC = 12)を試してみるべきですか? ;-) – Patrick

+0

私は実際に/ M9が最初の数字だけを読んでいると思っていましたが、そうではありません。/ M5から/ M9までのようには見えず、代わりに/ M1を入力したかのように扱います。 –

答えて

0

それはがあなたの特定のビルド構成のための以上4つのプロジェクトを並列化することはできませんVCBuild特定のプロジェクトの設定に依存する場合があります。

例えば、私の理解は、(修正気軽に): "ProjectAは" 前提条件であるとき

  1. VCBuildが
  2. VCBuildが 二つのプロジェクトを並列化することはできません プロジェクト内を並列化することはできません(リンク) "ProjectB"と入力します。むしろProjectAは となり、ProjectBは となります(これは前のProjectAビルドの結果にリンクしています)。 は、それらの両方は、その後、「ProjectC.exe」 (どちらもProjectAProjectBProjectCに並列に構築することができますが)にリンクされている場合しかし、「ProjectA.libは」、「ProjectB.lib」に 並列に構築することができます。

したがって、プロジェクトによっては、VCBuildで同時にビルドできるプロジェクトは最大4つしかない可能性があります。

(注:上記の2つの制限の根本的な理由はありません。むしろ、VCBuildは実際にはスケーラブルビルドではないため、両方の制限が歴史的な内部/技術的な理由によるものですサーバー ")

関連する問題