メモリー・プロファイラを使用して、プログラムがJavaヒープをどのように使用しているかを調べます。メモリー・リーク、ヒープの不正使用、疑わしいメモリーの動作などを検出します。
メモリー・プロファイラでは、最初は1つの大きな表にデータが表示されています。表にリスト表示されているすべてのクラスについて、詳細なレポートを表示することができます。クラスの詳細を表示するには、そのクラスが表示されている表の行を選択してダブルクリックするか、右クリックしてから「割当ての詳細の取得」を選択します。
表示されているサンプルのデータをHTMLファイルに保存するには、プログラムを一時停止し、メイン・ウィンドウで表を右クリックして、「HTMLで保存」を選択します。
(現在保持されているサンプル数に基づく)すべてのサンプルのデータを保存するには、プログラムを一時停止し、メイン・ウィンドウで表を右クリックして、「すべてHTMLで保存」を選択します。
列内のデータを昇順または降順にソートするには、列ヘッダーをクリックします。列の配置を変更するには、列をクリックして移動先までドラッグします。
「プロジェクトの設定」ダイアログに直接移動してプロファイラ設定を再構成するには、メイン・ウィンドウで表を右クリックし、「設定」を選択します。列の表示を変更してプロファイラに戻ると、変更内容が表示に反映されています。その他の変更の場合、新規プロファイリング・セッションを開始するまで、変更内容は反映されません。
メイン・ウィンドウの表には、ヒープのアクティビティ(経過時間内に発生した割当てと解放)およびヒープの状態が表示されます。プロファイラ・クラス・セットのメソッドがヒープに存在しないときに発生した割当てはカウントされません。
表の一番上には、現在のプロファイリング・セッションを制御する5つのボタンと、プロファイリングの進捗状況を示すスライダがあります。
一度プログラムを一時停止すると、詳細ウィンドウを開いてプロファイリングを続行することができ、両方のウィンドウでデータを取得できます。その後、詳細ウィンドウが存在しない時点までプログラムを逆方向にスクロールすると、NO DATA
という通知が表示されます。詳細ウィンドウを一度閉じると、データはリカバリ不可能です。
「プロジェクトの設定」ダイアログの「メモリー」ページを使用して、メモリーに保持するサンプル数を決定します。これによって戻れる回数が決まります。
表には、現在のプロファイリング・セッションで考察されている各クラスのデータが表示されます。
これらの列の値は、スクロールして前のサンプルに移動すると、サンプルに応じて変化します。
表の任意の行をダブルクリックするか、右クリックして「割当ての詳細の取得」を選択し、特定のクラスに関する詳細な割当ての表を開きます。その表には、クラスのインスタンスがリスト表示され、それらのインスタンスがどこから割り当てられたかが示されます。詳細ウィンドウを閉じると、内容は破棄されます。
表にリスト表示されているメソッドのソース・コードを表示するには、そのメソッドが表示されている表の行をダブルクリックするか、右クリックしてから「ソースを検索」を選択します。
一度プログラムを一時停止すると、詳細ウィンドウを開いてプロファイリングを続行することができ、両方のウィンドウでデータを取得できます。その後、詳細ウィンドウが存在しない時点までプログラムを逆方向にスクロールすると、NO DATA
という通知が表示されます。詳細ウィンドウを一度閉じると、データはリカバリ不可能です。
詳細ウィンドウは、現在のサンプルについてのみ開くことができます。プログラムの一時停止中にセッションの前のサンプルに戻って、詳細ウィンドウを開こうとすると、スライダのバーが現在のアクティブなサンプルに移動し、現在のサンプルの詳細ウィンドウが開かれます。
このウィンドウに表示されるディテール表には、もう1つの列があります。
その他の列には、メイン・ウィンドウで表示されているものと同じタイプの情報が表示されます。