ナビゲーションをスキップ

JRockit Memory Leak Detector ユーザーズ ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

メモリ リーク検出の開始

この節では、BEA JRockit Memory Leak Detector (以降は Memory Leak Detector という) の起動手順とユーザ インタフェースについて説明します。内容は以下のとおりです。

 


メモリ リーク検出プロセスの概要

メモリ リーク検出プロセスには次の 3 つの段階があります。

  1. 傾向分析
  2. オブジェクト タイプの関係の調査
  3. インスタンスの調査

傾向分析では、絶えず更新されるオブジェクト タイプに関する情報を観察して、メモリが不審に増加しているオブジェクト タイプを見つけます。このようなオブジェクト タイプは、メモリ リーク検出プロセスの次の段階で調査の対象となります。傾向分析テーブルの情報は 10 秒ごとに更新されるか、あるいはガベージ コレクションが非常に頻繁に行われる場合はもっと高い頻度で更新されます。

オブジェクト タイプの関係の調査では、オブジェクト タイプの間の参照パスを繰り返し追跡します。増大しているオブジェクト タイプの関係で注目すべきものを探し、その関係に関わるオブジェクト タイプを見つけることが目的です。メモリが異常に増加しているオブジェクト タイプが見つかったら、メモリ リーク検出プロセスの 3 番目の段階に進みます。

インスタンスの調査では、異常なメモリ サイズのインスタンスや、異常な数の参照があるインスタンスを見つけて、そのインスタンスを調べます。インスタンスを調べる際には、フィールド名、フィールドの型、フィールド値などの値が表示されます。これらの値を利用して、アプリケーション コード内で正確なエラーの場所を探します。つまり、その特定のオブジェクト タイプの特定のインスタンスが割り当て、変更、または削除されている場所です (状況の示す内容によって異なります)。不審なインスタンスに関わる部分にまで問題の場所を絞り込んでいくと、メモリ リークを起こしている実際の問題をうまく見つけ出して、その問題を修正することができます。

 


Memory Leak Detector の起動

Memory Leak Detector とアプリケーションを起動する前に、管理サーバを起動する必要があります。

  1. BEA JRockit JVM で Java アプリケーションを通常どおりに起動します。ただし、コマンドラインに -Xmanagement オプションを追加します。
  2. コマンド ウィンドウに java -jar MemoryLeakDetector.jar と入力して、Memory Leak Detector を起動します。
  3. [Server name] にサーバの名前を入力します。これはモニタするアプリケーションと JRockit を実行しているコンピュータの名前 (または IP アドレス) です。
  4. デフォルトのポートは 7091 です。管理サーバのポートを変更する場合は、下記の場所にある『JRockit Management Console ユーザーズ ガイド』の「ポートを変更する」を参照してください。

    http://edocs.beasys.co.jp/e-docs/jrockit/docs50/usingJMC/start.html#1036322
  5. [Connect to JRockit] ウィンドウで[Connect] をクリックします。
  6. Memory Leak Detector のウィンドウが開きます (図 2-1)。

 


Memory Leak Detector インタフェースの概観

BEA JRockit JVM に接続されていない状態の Memory Leak Detector のウィンドウは図 2-1 のようになっています。このインタフェースは 4 つのタブ、ツールバー、メイン メニュー、およびステータス バーから成っています。

図 2-1 Memory Leak Detector のメイン ウィンドウ

Memory Leak Detector のメイン ウィンドウ


 

タブの説明

Memory Leak Detector のメイン ウィンドウには、図 2-2 に示すように、[Trend]、[Types]、[Instances]、[Allocation Stack Traces] という 4 つのタブが含まれています。

図 2-2 Memory Leak Detector のタブ (ワーク フローを示している)

Memory Leak Detector のタブ (ワーク フローを示している)

表 2-1 タブの説明

タブ

説明

Memory Leak Detector のタブ


 

[Trend] タブでは、Java ヒープ上のオブジェクト タイプの傾向分析を表示することができます。ヒープの 0.1% 超を占めるすべてのタイプのリストが表示されます。増大速度の最も大きなオブジェクト タイプがリストの先頭に表示されます。

Memory Leak Detector のタブ


 

[Types] タブでは、いろいろなタイプがお互いをどのように指しているかを示すタイプ グラフを表示することができます。

Memory Leak Detector のタブ


 

[Instances] タブでは、いろいろなインスタンスがお互いをどのように指しているかを示すインスタンス グラフを表示することができます。

Memory Leak Detector のタブ


 

[Allocation Stack Traces] タブでは、特定のタイプがコード内のどこで割り当てられているかを表示することができます。


 

ツールバーの説明

Memory Leak Detector のツールバー (図 2-3) には、たとえば JRockit インスタンスに接続するボタンがあります。その他のボタンの説明は、表 2-2 を参照してください。

図 2-3 Memory Leak Detector のツールバー

Memory Leak Detector のツールバー

表 2-2 ツールバーの説明

アイコン

説明

Memory Leak Detector のツールバー


 

管理サーバに接続します。このボタンを使用すると、管理サーバに接続して、Java アプリケーションをモニタすることができます。

Memory Leak Detector のツールバー


 

管理サーバおよび Java アプリケーションとの接続を切断します。

Memory Leak Detector のツールバー


 

Java アプリケーションのモニタを開始します。

Memory Leak Detector のツールバー


 

画面の更新を休止します。

Memory Leak Detector のツールバー


 

現在のモニタを停止します。

Memory Leak Detector のツールバー


 

現在の表示をリフレッシュします。

Memory Leak Detector のツールバー


 

タイプまたはインスタンスを拡大します。このツールはグラフ内での移動に便利です。

Memory Leak Detector のツールバー


 

タイプまたはインスタンスを縮小します。

Memory Leak Detector のツールバー


 

オブジェクトを表示領域の中央に配置します。


 

ステータス バーの説明

ウィンドウの最下部に表示されるステータス バー (図 2-4) には、現在の接続に関する情報、傾向分析がオンかどうか、および割り当てスタック トレースがオンかどうかが表示されます。

図 2-4 Memory Leak Detector のステータス バー

Memory Leak Detector のステータス バー


 

 

ナビゲーション バーをスキップ  ページの先頭 前 次