最適化の近道 プロファイラgprofのコールグラフを画像化して、コードのどこがボトルネックかをわかりやすくする
boostを多用して富豪的プログラミングしまくってたらさすがに遅すぎて、プロファイラで解析しようと
思ったのですが、boost使ってるとgprofの出力解読が困難なので、コールグラフを視覚化できないものかなと思ったら良いツールがあったので使ってみました。
参考
gprofでコールグラフ - 三次元日誌
http://d.hatena.ne.jp/ousttrue/20091017/1255754733
配布サイト
https://code.google.com/p/jrfonseca/wiki/Gprof2Dot
以下はUbuntu13.04での話です。
まずは必要なモジュールのインストール
次に、scriptを以下からwget
wget http://gprof2dot.jrfonseca.googlecode.com/git/gprof2dot.py
sudo chmod 755 gprof2dot.py
gprof用にMakefileに以下を追加
LDFLAGS = -pg -fno-omit-frame-pointer
LOADLIBES = -pg
一回実行して、gmon.outを出力させる
sudo ./a.out
その後、gprofの出力をパイプでつなぎます。
gprof ./a.out | ./gprof2dot.py | dot -Tpng -o output.png
ボトルネックが一目瞭然!