メモリー・リークは、Java™ においてオブジェクトが不適切に参照を保持し続けるときにしばしば発生するものであり、パフォーマンスの低下の原因となり、結果としてプログラムの異常終了を起こすことがあります。「プロファイルおよびロギング」パースペクティブには、アプリケーションにおけるメモリーの使用法を分析し、これらのリークを検出するためのビューが組み込まれています。
メモリー・リーク分析のために以下のビューが使用可能となっています。
リークを識別したら、Probekit を使用して、リークしている可能性のある特定オブジェクトを厳密に調べるためのカスタム・プローブを設計することができます。
リーク候補を迅速に識別するには、「メモリー・リーク分析 (Memory Leak Analysis)」プロファイル・セットで プロファイル作成して、メモリー・リーク分析を実行してください。また、「メモリー分析」プロファイル・セットで プロファイル作成することで、メモリーの使用法を調べることもできます。このデータは「オブジェクト参照グラフ (Object Reference Graph)」、「オブジェクト参照」、および「オブジェクト詳細 (Object Details)」ビューで参照できますが、リーク候補のリストを生成するためにこのデータを使用することはできません。
メモリー・リーク分析では拡張アルゴリズムを使用して、2つのヒープ・ダンプの比較を基にした潜在的なメモリー・リークの識別を行います。プロファイル構成は、ヒープ・ダンプを手動でキャプチャーできるように定義するか、またはプロファイル・セットで指定済みの時刻に 自動的にヒープ・ダンプをキャプチャーするように定義することができます。
リークを分析するには、以下の手順を実行します。
これで、不要になった参照をクリーンアップするようにコードを変更して、 不要のオブジェクトをガーベッジ・コレクターが収集できるようにすることができます。リークを修正したかどうかを検証し、追加のリークを検出するため、もう一度アプリケーションのプロファイルを作成してください。
詳しくは、『メモリー・リークの分析』をお読みください。
「メモリー分析」プロファイル・セットを「基本メモリー分析」プロファイル・タイプ で使用すると、オブジェクト参照を収集し、ヒープ・ダンプを表示することができます。このデータは「オブジェクト参照グラフ (Object Reference Graph)」、「オブジェクト参照」、および「オブジェクト詳細 (Object Details)」ビューで表示できますが、リーク候補のリストを生成するためにこのデータを使用することはできません。
メモリー使用法を調べるには、以下の手順を実行します。