ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

詳細出力でのヒープ使用率の検討

Javaアプリケーションで見られるメモリー・リークの初期の兆候は、ヒープ使用量の増加です。古い領域のガベージ・コレクション(古いコレクション)では、使用されていないすべてのオブジェクトがヒープから削除されます。通常、古いコレクション後のヒープ使用量は時間が経過してもほぼ一定になりますが、アプリケーションにより誤って保持されるオブジェクトが増えている場合は、古いコレクション後のヒープ使用量がガベージ・コレクションのたびに増加します。

ヒープ使用量をモニターする簡単な方法は、詳細なガベージ・コレクション出力を確認することです。これを行うには、-Xverbose:gcオプションを使用してJRockit JVMを起動し、しばらくの間、次の例に示す出力を観察します。



[memory ] 2.703-2.729: GC 262144K->3904K (262144K), 25.857 ms
[memory ] 3.901-3.940: GC 262144K->10820K (262144K), 38.835 ms
[memory ] 4.857-4.913: GC 262144K->19606K (262144K), 56.011 ms
[memory ] 5.780-5.878: GC 262144K->28424K (262144K), 97.406 ms

矢印(->)の後の値が、ガベージ・コレクション後のヒープ使用量です。前の例には古いコレクションのみが出力されています。この例では、明らかにガベージ・コレクション後のヒープ使用量が継続的に増加していることがわかります。

ただし、ヒープ使用量を長期間モニターするこの方法は面倒です。管理コンソールには、ヒープ使用量を長期間モニターするためのグラフィカル・ツールが用意されています。管理コンソールでのヒープ使用率の検討を参照してください。