-verbose:gc
and/orオプションを使用すると、-XX:+PrintGCDetails
より詳細な情報が得られるはずです。
-verbose:gc
オプションをオンにした場合の出力例を次に示します。
[GC 325407K->83000K(776768K), 0.2300771 secs]
[GC 325816K->83372K(776768K), 0.2454258 secs]
[Full GC 267628K->83769K(776768K), 1.8479984 secs]
公式文書から取られた上記の説明:
ここでは、2 つのマイナー コレクションと 1 つのメジャー コレクションが続きます。矢印の前後 (たとえば、325407K->83000K
最初の行から) の数字は、それぞれガベージ コレクション前後のライブ オブジェクトの合計サイズを示します。マイナー コレクションの後、サイズにはガベージ (もはや生きていない) であるが再利用できないいくつかのオブジェクトが含まれます。これらのオブジェクトは、Tenured 世代に含まれているか、Tenured 世代または Permanent 世代から参照されます。
括弧内の次の数字 (たとえば、776768K
最初の行の ( ) など) は、コミットされたヒープ サイズです。つまり、オペレーティング システムから追加のメモリを要求することなく、Java オブジェクトに使用できる領域の量です。任意の時点で使用できるのは 1 つだけであるため、この数には Survivor スペースの 1 つが含まれていないことに注意してください。また、仮想マシンによって使用されるメタデータを保持する永続的な世代も含まれていません。
行の最後の項目 (例: 0.2300771 secs
) は、収集の実行にかかった時間を示します。この場合、約 4 分の 1 秒です。
3 行目のメジャー コレクションの形式も同様です。
この方法でアプリケーションを実行し、最小ヒープ サイズと最大ヒープ サイズを更新すると、VM のヒープ割り当てとガベージ コレクションのパターンを把握できます。