gprof と共有ライブラリ

gprofを使用してプロファイルをしようと思ったが、


Flat profile:

Eache sample counts as 0.01 seconds.
 no time accumulated


と表示されて、なにも表示されなかった。

原因は、共有ライブラリをリンクしていることにあるっぽい。

ライブラリ側も CFLAGやLDFLAGに、-pgをつけてビルドするが、実行すると、なにも表示されない。

解決方法の一つは、実行ファイルを-staticとして実行ファイルを作成すると、


Eache sample counts as 0.01 seconds.
 no time accumulated


と表示されるが、Call回数や、Call graphが表示された。


http://steps.dodgson.org/bn/2007/08/23/

によると、gprofは、周期的にpcの値を読み込んで時間を測定しているようだ。
それだと、処理時間がusec単位の処理だと、どこにボトルネックがあるかわからない。

コメント