1. ホーム
  2. c++

[解決済み] C++コンパイルプロセスのプロファイリング

2023-04-13 03:56:50

質問

私は、かなり大きなテンプレート化されたヘッダのみの C++ ライブラリを書くことが多く、私のユーザーは一般的にコンパイル時間について不平を言います。この問題について考えた後、私は以下のことを思いつきました。 時間がどこに行っているのか全く分からない . g++、icc、xlC などの一般的なコンパイラで C++ のコンパイルプロセスをプロファイルする簡単な方法はないでしょうか。たとえば、次のような環境でどれだけの時間が費やされているかを知ることは可能でしょうか。 C++ コンパイルの各フェーズにおいて

どのように解決するのですか?

以下のような場合 GCC があります。 デバッグオプション を見つけるために how much time is spent within each of the phases of C++ compilation?

-Q コンパイル時に各関数名を表示し、終了時に各パスに関する統計情報を表示するようにします。

-ftime-report コンパイラが終了したときに、各パスで消費された時間についての統計を表示するようにします。

パスは GCCINT 9: コンパイラのパスとファイル .

単一のソースファイルのg++コンパイルの出力は -v -ftime-report でコンパイルした結果を 議論する . GCCにいくつかの助けがあるかもしれません メーリングリスト .


コンパイラの場合 GCC 以外の (またはGCC より古い よりも 3.3.6 ) このスレッドの他のオプションを参照してください。