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

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

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

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

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

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

ツールバーの使用

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

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

プロファイル結果の下にあるフィルタボックスを使えば、表示される結果をメソッド名に従ってフィルタリングできます。結果をフィルタリングするには、メソッド名フィルタボックスに用語を入力し、使用するフィルタリング方法を選択し、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 プロファイリングスナップショットのスクリーンショット

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


Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.