コンパイラがどこで時間を費やしているかを知るにはどうすればよいですか?
ビルドが遅すぎます。既に VC++ 一時ファイル用に RAM ディスクを使用していますが、違いはありません。(私はSSDを持っているので、違いはないと思っていました。)
このプロジェクトの単一の C++ ファイルのほとんどは、約 1 秒かかります。コンパイルに2秒かかるのはひどいようです(VS2005を使用しているため、プロジェクト内の並列化も行っていません)。
これを最適化するにはどうすればよいですか?プロファイリングせずに最適化しないでください。コンパイラーをプロファイリングするにはどうすればよいですか?
注: これらはあまり役に立ちませんでした:
- C++ コンパイル プロセスのプロファイリング
- Visual Studio でビルド時間を表示しますか? (ただし、完全にメリットがないわけではありません...プロジェクト全体ではなく、単一ファイルのコンパイルを行うと、単一のファイルにかかった時間が表示されます。そうすれば、ここのかなりのファイルがそれ以上かかることがわかります5 秒、スタンドアロンでコンパイルした場合は 10 秒)
良いコメントを追加しましょう:テンプレートはたくさんありますか? ファイルの平均サイズはどれくらいですか? 必要最小限のヘッダーのみを含めることを確認しましたか
いいえ、しませんでした。もちろんできます(そして、きっとそうするでしょう)。何かを見つけられるかもしれませんが、それはすべて憶測と試行錯誤です!
「みんな」は、測定/プロファイリングの後にのみ最適化する必要があることを示していますが、コンパイル時間を最適化すると、試行錯誤に戻りますか?
注:コメントから提案された「ハック」は、少なくともVisual-C ++では機能し__TIME__
ません。これは、(ドキュメントの状態として):現在のソースファイルの最新のコンパイル時間。時刻は、hh:mm:ss 形式の文字列リテラルです。-- このスタンプを使用して、少なくとも単一のコンパイル ユニットのタイミングを取得できると思いますが、コンパイル ユニットにドリルダウンすることは役に立ちません。