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

以上.