ここでは,参照関係情報出力機能で出力するクラス別統計情報の出力形式,出力項目および出力例について説明します。
参照関係情報出力機能で出力するクラス別統計情報の出力形式を次に示します。
Reference of class <オプション指定クラス名> |
注※ <オプション指定クラス名>の文字数に19を加算した数の「-(ハイフン)」が出力されます。
出力形式で示した各項目について説明します。
表9-10 出力項目(参照関係情報出力機能)
出力項目 | 意味 |
---|---|
<クラス名> | jheapprofコマンドの-classオプションに指定したクラスのインスタンスが参照するクラスの名称が出力されます。 |
<アドレス> | インスタンスのアドレスが出力されます。 |
<領域名称> | インスタンスが所属する領域が出力されます。
|
<オプション指定クラス名> | jheapprofコマンドの-classオプションに指定したクラス名が出力されます。 |
java.lang.ref.Finalizer | finalize()メソッドを持つクラスで生成するjava.lang.ref.Finalizerのオブジェクトを一つにまとめて出力することを示します。 |
<繰り返し数> | Finalizerインスタンスの参照が連続した回数が出力されます。 |
参照関係情報出力機能で出力するクラス別統計情報の出力例を,次のソースを例にして説明します。
public class instance2 { |
インスタンス構造を次の図に示します。
図9-6 インスタンス構造(参照関係情報出力機能)
参照関係情報出力機能の出力結果を次の図に示します。この場合,jheapprofコマンドに引数「-class <クラス名>」を指定して実行します。
図9-7 出力結果(参照関係情報出力機能)
classAのアドレスは,すべて同じアドレス(0x10766840)になっています。したがって,classAはすべて同じインスタンスであることがわかります。一方,(1)と(4)のclassBは,アドレスが異なっているので,別のインスタンスであることがわかります。
なお,GCの発生によってインスタンスのメモリ上の配置が変化します。そのため,アドレスおよび領域名称は,出力するたびに変化する場合があります。