実際、この/m
オプションは「ビルドする同時プロセスの最大数」を指定します。つまりmsbuild.exe
、プロジェクトを並行してビルドするために並行して開始するプロセスの最大数です (各プロセスは最大で 1 つのプロジェクトをビルドします)。「すべてのコアを使用する」とはかなり異なります。確かに、/m
オプションの長い形式の名前は/maxcpucount
別のヒントになるかもしれませんが、その説明は何が起こっているのかをよりよく示しているはずです:
/maxcpucount[:n] Specifies the maximum number of concurrent processes to
build with. If the switch is not used, the default
value used is 1. If the switch is used without a value
MSBuild will use up to the number of processors on the
computer. (Short form: /m[:n])
ここで、たとえば、各プロジェクトが別のプロジェクトの依存関係であるため (P2 をビルドするには P1 が必要であり、P3 をプロジェクトするには P2 が必要であるなど)、ソリューションでプロジェクトを並行してビルドできない場合は、あなたが勝ちました。並列ビルドが発生していません。ビルドの完了速度によっては、CPU グラフの「ちらつき」が実際に何が起こっているかについて実際には正確ではない可能性があるため (タスク マネージャーを使用するなど)、すべてのコアで関連するアクティビティが表示されないこともあります (ビルドがまた、かなり I/O 集約的であり、CPU 負荷を見てもわかりません)。
ただし、(たとえば、Process Explorer または Task Manager を使用して) 使用してmsbuild.exe
いるコア/CPU の数 (またはオプションの数としてオプションに渡す同等の数) に一致するプロセスの数を確認する必要があり/m
ます。
この SO questionも参照してください。また、"parallel msbuild" を検索すると、より多くの情報を含む良いヒットが得られます。