C(++)言語: valgrindの使い方 (massif)

Kazuki Ohta, 2006/05/20



「Binary Hacks」


(2-3) Massif: ヒーププロファイラを使う

Massifを用いるとプログラムが使用するヒープを検査する事が出来る。例えばどれぐらいメモリを使用しているのかとか、スタックの消費量とか。更にアウトプットとしてPostScript形式を使用しメモリ使用量を可視化する事が出来る。

試しにSigSchemeを以下のようにプロファイリングしてみた結果を張り付ける。お使いのPostScript Viewerで御覧下さい。

libtool --mode=execute valgrind --tool=massif ./sscm bench/bench-let-loop.scm
出力は「massif.プロセスid.ps」となる。

massif.16988.ps

縦軸がヒープ使用量、横軸が時間。右側にはメモリを確保した関数名等が表示されるので、メモリ使用量のボトルネック等を探す際に有効。

このプログラムは最初からヒープを一気に確保しているのであまり面白くないが、User Manualには面白い例が掲載されているので一度目を通すと良い。


User Manualより拝借

[ return ]