LinuxでC++を実行しているコードをプロファイルする必要があります。プロファイラーを推薦できますか?
Gprofを使用します。
-pg
フラグを付けてコンパイルするだけです(ただし、最適化を有効にする必要があると思います(ただし、確信はありません))。gprofを使用して、実行可能ファイルが生成するgmon.outファイルを分析します。
例えば:
gcc -pg -o whatever whatever.c
./whatever
gprof whatever gmon.out
G ++とcppでも同じことが言えます。
valgrind は有名なLinuxプロファイラーです
RotateRightからのズーム( http://www.rotateright.com )は私が使用しているものです。関数のバタフライビューがあり、任意の関数をダブルクリックしてソースコードまたはasmコードに飛び込むことができます。デバッグ情報(-g)を使用してビルドしてソースを表示しますが、optimizedコードをビルドおよびプロファイリングする必要があります。
KCacheGrind を見てください。これは valgrind のグラフィカルなフロントエンドであり、非常に使いやすくなっています。
Googleには google-perftools の一部としてNiceプロファイラーもあります。これはDebian/Ubuntuおよびおそらく他のディストリビューションに含まれています。
Sysprof をご覧ください。ほとんどの場合、ディストリビューションはすでに利用可能になっています。
アプリケーションがフレームポインターを使用してコンパイルされている場合、上記のすべてのプロファイラーが最適に機能することに注意してください。つまり、gccコマンドラインで-fno-omit-frame-pointerを使用する必要があります。
gprofは、プロファイリング用の標準的なgnuツールです。