メモリー・リーク (Java™ では、オブジェクトが参照を誤って保持した場合に発生する) が発生すると、パフォーマンスが低下し、最終的にはプログラムが破損する可能性があります。「プロファイルおよびロギング」パースペクティブには、アプリケーションのメモリー使用状況を分析し、これらのリークを検出するためのビューが組み込まれています。
メモリー・リークの分析には、以下のビューを使用できます。
リークを識別した後で、Probekit を使用して、リーク中の特定オブジェクトを調査するカスタム・プローブを設計できます。
リークの候補をすばやく識別するには、「メモリー・リーク分析」プロファイル・セットでプロファイルを作成することによってメモリー・リーク分析を実行します。 また、「メモリー分析」プロファイル・セットを使用してプロファイルを作成することにより、メモリー使用状況を調査することもできます。「オブジェクト・リファレンス・グラフ」ビュー、「オブジェクト・リファレンス」ビュー、および「オブジェクト詳細」ビューを使用してこのデータを参照できますが、このデータを使用してリーク候補のリストを生成することはできません。
親トピック: ランタイムの問題判別に関するスタートアップ・ガイド
メモリー・リーク分析では、拡張アルゴリズムを使用し、2 つのヒープ・ダンプの比較に基づいてメモリー・リークが疑われる場所を識別します。 ヒープ・ダンプを手動で取得するか、プロファイル・セットで指定した時間に自動的に取得するように、プロファイル構成を定義できます。
リークを分析するには
この時点でコードを変更して、不要になった参照をクリーンアップすると、ガーベッジ・コレクターが不要なオブジェクトを収集できるようになります。アプリケーションのプロファイルを再作成して、リークが修正されたことを確認し、別のリークを検出します。
詳細については、メモリー・リークの分析を参照してください。
「メモリー分析」プロファイル・セットをメモリー/リーク分析プロファイル・タイプとともに使用すると、オブジェクト・リファレンスを収集し、ヒープ・ダンプを表示することができます。 「オブジェクト・リファレンス・グラフ」ビュー、「オブジェクト・リファレンス」ビュー、および「オブジェクト詳細」ビューでこのデータを表示できますが、このデータを使用してリーク候補のリストを生成することはできません。
メモリーの使用状況を調べるには、次の手順を実行します。