google-perftoolsの使い方
C++プログラムのパフォーマンス解析をgoogle-perftoolsを使ってやった.
公式ドキュメントによると, LD_PRELOADを使う方法は非推奨らしいんだけど, 動的リンクする方法ではなぜかうまくいかなかった.
まず, 関連パッケージをaptでインストール. そしてCPUPROFILEでプロファイリング結果の出力先を指定.
export CPUPROFILE=/tmp/profile
次に, LD_PRELOADでプロファイラの動的ライブラリを先読みするように指定して実行
env LD_PRELOAD=/usr/lib/libprofiler.so (実行ファイル)
aptで入れるとlibprofiler.soが生成されないので, 自分でリンクを作った.
出力はまあ色んな形式で見られるらしいんだけど, kcachegrindで見られるように変換
google-pprof --callgrind (実行ファイル) /tmp/profile > profile.callgrind
CPUのプロファイルを取る頻度をあげたければ環境変数をセットすればいいらしい.
export CPUPROFILE_FREQUENCY=100000
以上.