Visual Studio for C++プロジェクトで "マルチプロセッサのコンパイル"オプションを使用する際に注意すべき欠点、副作用その他の問題はありますか?あるいは、別の言い方で言えば、なぜVisual Studioではこのオプションがデフォルトでオフになっていますか?Visual Studioで「マルチプロセッサコンパイル」に不利な点はありますか?
答えて
The documentation for /MP
says:
互換性のないオプションと言語機能
/MP
オプションは、一部のコンパイラオプションおよび言語機能と互換性がありません。互換性のないコンパイラオプションを/MP
オプションとともに使用すると、コンパイラは警告D9030を発行し、/MP
オプションを無視します。互換性のない言語機能を使用すると、コンパイラはエラーC2813を発行し、現在のコンパイラの警告レベルオプションに応じて終了または続行します。
注:
ほとんどのオプションは互換性がありません。許可されていれば、同時に実行するコンパイラは同時に出力をコンソールまたは特定のファイルに書き込むためです。その結果、出力が混ざり合って文字化けしてしまいます。場合によっては、オプションの組み合わせによってパフォーマンスが悪化することがあります。
そしてそれは/MP
と互換性のないコンパイラオプションおよび言語機能を示していますテーブルを提供します:
#import
プリプロセッサディレクティブは、(C++のクラスに、タイプライブラリ内の型を変換し、その後、書き込みこれらのクラスをヘッダーファイルに)/E
,/EP
(標準出力(stdout)にプリプロセッサの出力をコピー)/Gm
(リビルド増分をイネーブル)/showIncludes
(標準誤差(stderr)に含まれるファイルのリストを書き込み)/Yc
(プリコンパイル済みヘッダーファイルを書き込み)
の代わりにそれらを無効にします既定で他のオプション(既定で/MP
を有効にする)を使用すると、Visual Studioではこれらの機能を手動で無効/防止し、/MP
を有効にします。
マルチプロセッサコンパイルは他の多くのコンパイルオプションと互換性がなく、システムリソースの使用率も高いためです。それが彼にとって価値があるかどうかを決めるのは開発者次第です。あなたはここに完全なドキュメントを見つけることができます:http://msdn.microsoft.com/en-us/library/bb385193.aspx
"システムリソースの使用量の増加が重要になる可能性があります。テンプレートの重いプロジェクトでは、マウスの動きやキーストロークに一度に反応しないほどの強力なデスクトップマシンを抱えていました。ビルド時間のわずかな増加だけで、マルチプロセッサコンパイルを無効にすることで、ビルド中に他のアクティビティで実際にマシンを使用できるようになり、オフセットされました。 – Jeremy
は、私たちの経験から見つかった主な問題点は以下の通りであった。今日では、同じ時間(役に立たない情報でBSCMAKEを呼び出すことにより、複数のプロジェクトをビルドするために失敗し
- ブラウズ情報はそうする必要があります
- 依存関係の問題とビルドオーダーの問題による通常のビルド時には通常は見られないものがあります。
- バッチビルドではマルチプロセッサコンパイルを利用できません。 2005〜2008年のVあなたがstdafxを構築し、無視することができますが、やっ時には、上記の構成の問題です、それはしかし、このメッセージ
を生成し、再構築すると
"リンカの失敗"と言えば、並列プロジェクトのビルドや/ MPスイッチに関して見たこれらの問題は、1つのプロジェクトで並列コンパイルを行いますか? ([こちら](http://blogs.msdn.com/b/visualstudio/archive/2010/03/08/tuning-c-build-parallelism-in-vs2010.aspx)も参照してください)。または、リンカーの障害依存関係が正しく構成されていないため –
@MartinBaこれは、プロジェクトの依存関係がソリューションで正しく設定されていないためでした。並列プロジェクトのビルドを有効にしなかった場合、時には離れてしまうことがありました。問題のあるプロジェクトを見つけるために出力を介して – EdChum
- 1. Androidサポートライブラリの使用に不利な点はありますか?
- 2. Joomla - ラッパー|何か不利な点はありますか?
- 3. Visual Studioで「利用可能なデバイスがありません」2015
- 4. ドッカー:ディストリビューションを混ぜる - 何か不利な点がありますか?
- 5. Perlでは、ゲッターやセッターをハードコーディングするのではなく、不利な点がありますか?
- 6. voidの代わりにこれを返すのに不利な点はありますか?
- 7. VS2010 SP1にはどのような大きな利点がありますか?
- 8. Visual Studio 2015にVisual Basic Interactive Windowはありますか?
- 9. 保存されたprocsでPRINTを使用することに不利な点はありますか?
- 10. このリファクタリングには何か利点はありますか?
- 11. SSLの利点は面倒な価値がありますか?
- 12. MacPortsとRubyGemsを同時に使用することに不利な点はありますか?
- 13. AngularJs Serviceのコールバック関数にsocket.ioをラップするのに不利な点はありますか?
- 14. Visual Studio 2015のインストールでMicrosoft.TeamFoundation.VersionControl.Client.dllはどこにありますか?
- 15. Visual StudioでXamarinのMacテンプレートプロジェクトはどこにありますか?
- 16. 64ビットOSで開発する利点はありますか?
- 17. Java - インライン化コードには利点がありますか?
- 18. コンストラクタインジェクションよりプロパティインジェクションの利点はありますか?
- 19. Subversionで制御されたVisual Studioの作業コピーで '.svn'の代わりに '_svn'ディレクトリを使用する利点はありますか
- 20. Visual Studioが不要なスタンドアロンTFSクライアントをインストールできますか?
- 21. AES暗号化でランダムなデータをパディングする利点はありますか?
- 22. Visual StudioにDLLをアンロードする方法はありますか?
- 23. Visual StudioでScalaプログラミングを行う方法はありますか?
- 24. Visual Studioに「ZIPプロジェクト」はありますか?
- 25. Visual Studio 2010のDragAllowプロパティはどこにありますか?
- 26. Visual Studioの[カスタムツール]フィールドはどこにありますか?
- 27. Visual Studio 11 Betaの[Store]メニューはどこにありますか?
- 28. Visual Studioにメンバーのドロップダウンリストを開くホットキーはありますか?
- 29. Visual Studio 2015のwsdl.exeはどこにありますか?
- 30. Visual Studio 11にはネイティブの64ビット版がありますか?
関連:http://stackoverflow.com/questions/1422601/how-do-i-turn-on-multi-cpu-core-c-compiles-in-the-visual-studio-ide-2008 –