Memory Analyzer は、メモリー・リークの疑いがあるものを特定できるリーク・サスペクト・レポートを提供します。ただし、このレポートを使用せずにメモリー・リークを調べることができます。適切な定義済み照会を使用して、メモリー・リークを検出してください。
このタスクでは、リーク・サスペクト・レポートを使用せずにメモリー・リークを調査する推奨手順を説明しています。この手順はレポートにより自動化されています。
次の表では、メモリー・リークの問題の分析に役立つ照会のリストを示します。
| 照会グループ -> 照会 | 説明 |
|---|---|
| 「Java™ の基礎」 -> 「ドミネーター・ツリーでオープン」 | クラスのツリーを表示します。各ノードのクラスはノードの子を存続させています。ツリーは保存ヒープのサイズ別に分類されます。そのため、単一の大規模オブジェクトの検出は簡単です。大量のメモリーを消費している単一オブジェクトがない場合は、ラージ・メモリー・チャンクを示すために、クラス別またはクラス・ローダー別に結果をグループ化してみてください。ツリーのグループ化方法を変更するには、ツールバーにあるグループ化アイコン ( ) をクリックしてください。 |
| 「リークの識別」 -> 「トップ・コンシューマー」 | サイズが特に大きいいくつかのオブジェクトに関する情報を返します。結果はクラス別、クラス・ローダー別、およびパッケージ別にグループ化されます。 |
| GC ルートへのパス | このグループには、いくつかの照会があります。照会を使用すると、単一オブジェクトをヒープ内に保持する責務を持つオブジェクトを識別できます。メモリー・リークの疑いがあるものに関する照会を実行します。他の照会を実行してメモリー・リークの疑いがあるものを検出できます。例えば、「ドミネーター・ツリーのビッグ・ドロップ」照会は、リークの疑いがあるものと見なされるメモリー集積点を識別します。 |
| 「Java の基礎」 -> 「重複クラス」 | 複数回にわたってロードされたクラスをリストします。リストを展開すると、関連付けられたクラス・ローダーが表示されます。クラス・ローダーが複数回にわたって同じクラスをロードした場合、同じライブラリーのいくつかのバージョンがデプロイされることがあります。 |
| 「リークの識別」 -> 「ドミネーター・ツリーのビッグ・ドロップ」 | ドミネーター・ツリーのメモリー集積点 が表示されます。メモリー集積点は、あるオブジェクトの下の、多くの小さなオブジェクトのメモリーが集まる場所です。集積点は、オブジェクトの保持サイズとその子の保持サイズに大きな差があることにより識別されます。照会により、skip パラメーターで除外されなかった、集積点の最初のドミネーターも示されます。skip パラメーターは、一般的な Java オブジェクトを除外し、代わりにアプリケーション・コードに固有のオブジェクトを表示する目的で使用されます。 |