コンパイラが時間を費やす場所を知りたいのですが?コンパイラがどこで時間を費やしているかを調べるにはどうすればよいですか?
ビルドが遅すぎます。私は既にVC++の一時ファイル用にRAMディスクを使用していますが、何の違いもありません。 (私はSSDを持っているので、違いはないと思っています)
このプロジェクトのほとんどの単一のC++ファイルは約です。私はVS2005を使用しているため、プロジェクト内の並列化がないので、ひどく思える2秒間のコンパイルを行います。
これをどのように最適化できますか?プロファイリングなしで最適化しないでください。しかし、コンパイラーをプロファイルするにはどうすればいいですか?
注:これらは本当に便利ではなかった。
- Profiling the C++ compilation process
- Displaying build times in Visual Studio?(それはしかし、メリットなしで完全ではありません...あなたは、単一ファイルのコンパイルを行う場合は、代わりにプロジェクト全体の、スタンドアロンのコンパイル時に
)私はかなりいくつかのファイルがここよりその5秒かかることがわかりそうすれば、いくつかのも、10秒:それは単一のファイルにかかった時間が表示されます
良いコメントを追加しましょう:テンプレートがたくさんありますか?ファイルの平均サイズはどれくらいですか?必要なヘッダーの最小値のみを含めてチェックしましたか?
いいえ、私はしませんでした。私は当然のことながら(もちろんそうであろう)。私は何かを見つけることができるかもしれませんが、それはすべて投機と試行錯誤です!
"Everybody"は、測定/プロファイリング後に最適化する必要があると言いますが、コンパイル時間を最適化すると、試行&にエラーが戻っていますか?
注:の最新のコンパイル時間:提案__TIME__
とコメントから「ハック」少なくともないのVisual-C++でない仕事、(the docs状態など)を行いますので、現在のソースファイル。時刻は、hh:mm:ssという形式の文字列リテラルです。 - 私はこのスタンプでシングルコンパイル単位のタイミングを取得することはできますが、コンパイル単位にドリルダウンすることはできません。
テンプレートがたくさんありますか?ファイルの平均サイズはどれくらいですか?必要最小限のヘッダーだけを含めてチェックしましたか? – stefan
プリコンパイル済みヘッダーを使用していますか? –
@MartinBa "必要最低限のヘッダーだけを含む"というのは試行錯誤ではなく、良い習慣です。ファイルの平均サイズについて:コンパイラはすべてを解析する必要があるので、明らかにファイルのサイズによって与えられる性能限界があります。変更されたファイルだけが再コンパイルされる増分ビルドシステムをお勧めします。次に、長いコンパイル時間について心配する必要はありません。 – stefan