9.7.2 GCの選択の指針

統計前のGC選択機能で,どの処理を指定するかは,出力されるクラス別統計情報の調査目的によって異なります。

ここでは,調査目的に合わせて,処理を選択する指針について説明します。

統計前のGC選択機能で選択できる処理は,jheapprofコマンドの引数で指定します。処理は,どのオブジェクトを調査対象とするか,クラス別統計情報をどのような調査で使用するかによって選択します。

処理の選択の指針を次の表に示します。

表9-15 処理の選択の指針

処理
(jheapprofコマンドの引数)
調査対象クラス別統計情報の調査方法の例
FullGCの実行
(-fullgc)
FullGCによるオブジェクトの変化FullGCによって,使用済みのオブジェクトが回収されるため,Javaヒープのメモリリークの原因となるオブジェクトを特定できます。
CopyGCの実行
(-copygc)
CopyGCによるオブジェクトの変化CopyGCによって,Tenured領域へ移動する寿命の長いオブジェクトを特定できます。この情報から,FullGCの発生頻度が増大する原因となるオブジェクトを特定できます。
GCは実行しない
(-nogc)
GCの実行で回収されてしまう短寿命オブジェクト使用済みのオブジェクトを含むすべてのオブジェクトの情報が出力されます。CopyGCが多発している場合などに,その原因となるメモリ占有率の高いオブジェクト(超大オブジェクト)を特定できます。
注※
jheapprofコマンドの引数に-nogcを指定した場合,すべての寿命の短いオブジェクトの情報が出力されるため,ログの出力量が増加します。