ヒープトレースデータの収集目的
ヒープトレースデータの収集によって、プログラムのメモリーリークを検出したり、動的メモリーの使い方が非効率的な箇所を特定することができます。
コレクタによるヒープトレースデータの収集
コレクタは C 標準ライブラリメモリー割り当て関数 malloc、 realloc、および memalign、および割り当て解除関数 free にラッパー関数を挿入します。 Fortran サブルーチンの allocate と deallocate は、C 標準ライブラリ関数を呼び出すため、これらのサブルーチンも間接的にトレースされます。
パフォーマンスアナライザでわかるヒープトレースメトリック (計測データ) の種類
ヒープトレースデータは、次のメトリックに変換されます。
メトリック | 定義 |
---|---|
割り当て | メモリー割り当て関数の呼び出し数。 |
割り当てバイト数 | メモリー割り当て関数の各呼び出しで割り当てられるバイト数の合計。 |
リーク | free 呼び出しが対応していなかったメモリー割り当て関数の呼び出し数。 |
リークバイト数 | 割り当てられたけれども解放されなかったバイト数。 |
ヒープトレースデータ収集に関する制限事項
既に実行されているプログラムからはヒープトレースデータを収集できません。ただし、コレクタライブラリの libcollector.so が事前に読み込まれている場合は収集できます。 詳細については、動作中プロセスのパフォーマンスデータの収集を参照してください。
Java[tm] メモリー割り当ておよび割り当て解除はトレースできません。
詳細についてはマニュアル『プログラムのパフォーマンス解析』を参照してください。
関連項目 | |
---|---|
パフォーマンスデータの収集 |