プロファイラ(gprof)

プロファイラとは

プログラムの最適化を行なうときには、 処理時間の大きい関数を集中的に最適化すると効果が大きい。 そのためにはまず関数ごとの実行頻度や実行時間などといった、 プログラムの振舞いを測定する必要がある。 プロファイラは そのためのツールである。

使用法の概略

gprof を使う準備

コンパイルとリンク時に-pgオプションをつける。

gcc -pg -o test test.c

makefileを利用する時には、リンク時のオプションを付け忘れることが多いので注意。

プログラムの実行

-pg を付けて作成した)プログラムを普通に実行する。 プログラムが正常終了すると、 カレントディレクトリに gmon.out というファイルが生成されている。 (Ctrl-Cで止めたり、Segmentation Faultで異常終了した時には gmon.out は生成されないので、注意しよう。)

./test
ls -F
gmon.out   test   test.c

解析結果の出力

「gprof 実行ファイル名 gmon.out」とすると、 解析結果が標準出力に表示される。

gprof  ./test  gmon.out

出力される分量が多いので、リダイレクションなどでファイルに保存すると良い。

gprof  ./test  gmon.out > gmon.log
less gmon.log