Sun Java Solaris コミュニティー My SDN アカウント SDN に参加
 

Java VisualVM


Java VisualVM ドキュメントの索引に戻る

アプリケーションのプロファイリング

Java VisualVM では、ローカルアプリケーションやリモートアプリケーションのデータは、そのアプリケーションに固有のタブ内に表示されます。アプリケーションタブは複数個開くことができます。各アプリケーションタブに含まれるサブタブには、アプリケーションに関するさまざまな種類の情報が表示されます。

アプリケーションのプロファイリング

アプリケーションの「Profiler」タブでは、ローカルアプリケーションのプロファイルセッションの開始と停止を行えます。プロファイル結果は「Profiler」タブ内に表示されます。ツールバーを使えば、プロファイル結果の再表示、ガベージコレクションの起動、およびプロファイルデータの保存を行えます。

デフォルトでは、アプリケーションのプロファイリングの準備が整うまでプロファイリングツールは実行されません。選択可能なプロファイルオプションは、次のとおりです。

  • 「CPU」プロファイリング: アプリケーションのパフォーマンスのプロファイリングを行う場合に、これを選択します。
  • 「Memory」プロファイリング: アプリケーションのメモリー使用量を解析する場合に、これを選択します。結果には、アプリケーションによって割り当てられたオブジェクトと、それらのオブジェクトの割り当て元となるクラスとが表示されます。

ユーザーがプロファイルセッションを開始すると、Java VisualVM はローカルアプリケーションに接続し、プロファイルデータの収集を開始します。プロファイル結果が使用可能になると、その結果が自動的に「Profiler」タブに表示されます。

ツールバーの使用

「Profiling results」のツールバーに含まれる次の各ボタンを使えば、プロファイル結果を操作できます。

  • Update Result Automatically: アクティブの場合、表示されたプロファイル結果が短い間隔 (約 2 秒) で自動的に更新されます。
  • Update Result Now: 結果をすぐに更新する場合にクリックします。
  • Run Garbage Collection in Profiled Application and Update Results: ガベージコレクションを実行する場合にクリックします。
  • Reset Collected Results Buffer: すでに蓄積されたプロファイル結果を破棄する場合にクリックします。
  • Take Snapshot of Collected Results: 現在のプロファイルデータのスナップショットを取る場合にクリックします。スナップショットを取ると、そのスナップショットが新しいサブタブ内で開かれます。
  • Save current view to image: プロファイル結果の現在の表示を .png イメージファイルとして保存する場合にクリックします。このボタンをクリックすると、イメージを保存する場所の選択を求めるプロンプトが表示されます。

プロファイル結果のフィルタリング

プロファイル結果の下にあるフィルタボックスを使えば、表示される結果をメソッド名に従ってフィルタリングできます。結果をフィルタリングするには、メソッド名フィルタボックスに用語を入力し、使用するフィルタリング方法を選択し、Return キーを押します。以前のフィルタ用語を表示して選択するには、メソッド名フィルタボックスの右側にある矢印をクリックします。

プロファイル設定の変更

Java VisualVM のプロファイリングツールには、アプリケーションのプロファイリングを行うためのデフォルト設定が用意されています。デフォルト設定を表示するには、「Profiler」タブの「Settings」チェックボックスを選択します。進行中のプロファイルセッションが存在しない場合にはプロファイル設定を変更できます。

CPU プロファイリング

このプロファイルコマンドは、メソッドレベルの CPU パフォーマンス (実行時間) に関する詳細データを返し、メソッドごとに合計実行時間と呼び出し回数を表示します。アプリケーションのパフォーマンスを解析する場合、Java VisualVM はプロファイル対象アプリケーションのすべてのメソッドを計測します。スレッドは、メソッドに入るときに「メソッドの開始」イベントを出力し、メソッドを出るときに対応する「メソッドの終了」イベントを生成します。これらのイベントのどちらにも、タイムスタンプが含まれます。このデータはリアルタイムで処理されます。

CPU プロファイル結果が表示された「Profiler」タブのスクリーンショット

CPU プロファイリングが表示された「Profiler」タブのスクリーンショット

CPU プロファイル設定が表示された「Profiler」タブのスクリーンショット

CPU プロファイリングが表示された「Profiler」タブのスクリーンショット

メモリープロファイリング

メモリー使用量を解析する場合、Java VisualVM はロード済みクラスの計測を開始し、各クラス (配列クラスも含む) が割り当てたオブジェクトの合計数を表形式で表示します。プロファイル結果には、Java Virtual Machine (JVM) 内に現在ロードされているクラスごとに、プロファイルセッションの開始後に割り当てられたオブジェクトのサイズと数が表示されます。新しいオブジェクトが割り当てられたり新しいクラスがロードされたりすると、結果が自動的に更新されます。

Java VisualVM では、オブジェクト数は絶対数として表示されるほか、パーセントとしても表示されます。各クラスによって割り当てられたバイトも、バイトのパーセントを表すグラフとして表示されるほか、合計バイト数としても表示されます。

メモリープロファイル結果が表示された「Profiler」タブのスクリーンショット

メモリープロファイリングが表示された「Profiler」タブのスクリーンショット

メモリープロファイル設定が表示された「Profiler」タブのスクリーンショット

メモリープロファイル設定が表示された「Profiler」タブのスクリーンショット

プロファイラスナップショットの取得

Java VisualVM では、プロファイルセッションの結果を取得するためにプロファイラスナップショットを取ることができます。プロファイラスナップショットでは、その時点における結果が取得されます。スナップショットを取るには、プロファイルセッションの進行中にツールバーの「Take Snapshot of Collected Results」ボタンをクリックします。スナップショットを取ると、そのスナップショットがアプリケーションタブ内の 1 つのタブとして開かれます。また、このスナップショットのノードも、「Applications」ウィンドウのアプリケーションノードの下に表示されます。

メモリープロファイリングスナップショットのスクリーンショット

メモリープロファイリングスナップショットのスクリーンショット

CPU プロファイリングスナップショットのスクリーンショット

CPU プロファイリングスナップショットのスクリーンショット

プロファイラスナップショットの詳細については、次のドキュメントを参照してください。


Java VisualVM ドキュメントの索引に戻る