/Gm を無効にして /MP を有効にした後、VS2010 でのビルド時間が大幅に短縮されました。
/Gm がデフォルトである理由がわかりません。/MPの方がいいと思います。
(/Gm が有効になっている場合、/MP は互換性がないためアクティブ化されません。/Gm のアクティブ化は、アクティブ化された /MP よりも時間がかかります。)
/Gm を無効にして /MP を有効にした後、VS2010 でのビルド時間が大幅に短縮されました。
/Gm がデフォルトである理由がわかりません。/MPの方がいいと思います。
(/Gm が有効になっている場合、/MP は互換性がないためアクティブ化されません。/Gm のアクティブ化は、アクティブ化された /MP よりも時間がかかります。)
頭のてっぺんから、いくつかの理由を考えることができます。
このオプションによるビルド時間の改善は/MP
、ユーザーが使用できるプロセッサの数によって異なります。Visual Studio チームはおそらく、誰もが複数のプロセッサを持っていると仮定するのは (まだ) 妥当ではないと考えています。(このような最適化に関しては、ハイパースレッディングは必ずしも複数のプロセッサとしてカウントされないことに注意してください。)
この/MP
オプションは、一部のコンパイラ オプションおよび言語機能と互換性がありません。一般に、デフォルトでは、必要に応じて速度を犠牲にしても、互換性を最大化しようとする必要があります。デフォルト設定を選択する際に評価される基準は、何かが「より優れている」ということだけではありません。「D9030」または「C2813」コンパイラ警告の意味と、VS2008 で正常にコンパイルされたプロジェクトが VS2010 でコンパイルされない理由を確認するために、マニュアルをクラックする必要はありません。
ドキュメントでは、これらの問題について詳しく説明しており、個々のケースでオプションを有効にすることが最善の決定であるかどうかを判断する方法についてのガイドラインも含まれています。/MP
機能を有効にするかどうかのガイドラインを公開しなければならない場合はいつでも、おそらくデフォルトで有効にするべきではありません。上級ユーザー (いいえ、これは矛盾した表現ではありません。Visual Studio を使用するすべての人が上級ユーザーというわけではありません。これは、この指定が問題の製品に関連しているためです) のように、このオプションを有効にするかどうかを自分で決めることができます。