Java VisualVM - アプリケーションの監視
Java VisualVM では、ローカルアプリケーションやリモートアプリケーションのデータは、そのアプリケーションに固有のタブ内に表示されます。Java VisualVM 内であるアプリケーションを開くと、メインウィンドウの新しいタブ内にそのアプリケーションが開かれます。アプリケーションタブは複数個開くことができます。
アプリケーションの監視
Java VisualVM を使えば、ローカルアプリケーションを監視し、Java 仮想マシン (JVM) 内でのメモリーヒープ、スレッドアクティビティー、およびロード済みクラスに関するハイレベルのデータをリアルタイムで表示できます。アプリケーションの監視は、それに伴うオーバーヘッドが少ないため、長時間行うことができます。
監視データは次のグラフ内に表示されます。
- Heap: 「Heap」グラフには、ヒープの合計サイズと現在使用中のサイズが表示されます。これらは、Java テクノロジベースのアプリケーション (Java アプリケーション) から java.lang.Runtime.totalMemory() 呼び出しと java.lang.Runtime.freeMemory() 呼び出しを使って取得できる数値です。
- PermGen: 「PermGen」グラフには、Permanent 世代領域の、時間の経過に従った変化が表示されます。Permanent 世代とは、ヒープ内で、クラスやメソッドのオブジェクトが格納される領域のことです。非常に多数のクラスをロードするアプリケーションでは、-XX:MaxPermSize オプションを使って Permanent 世代のサイズを増やす必要がある場合があります。
- Classes: 「Classes」グラフには、ロードされたクラスと共有クラスの合計数の概要が表示されます。
- Threads: 「Threads」グラフには、アプリケーションの JVM 内に含まれるライブスレッドとデーモンスレッドの数の概要が表示されます。ある特定時間のアプリケーションスレッドに関する正確なデータを取得して表示する必要がある場合には、Java VisualVM を使ってスレッドダンプを取ることができます。スレッドの操作方法の詳細については、次のドキュメントを参照してください。
「Monitor」タブに含まれるボタンを使って、次のアクションを実行できます。
- Perform GC: ガベージコレクションを即座に実行するには、「Perform GC」をクリックします。
- Heap Dump: ヒープダンプを取るには、「Heap Dump」をクリックします。ヒープダンプを取ると、そのヒープダンプを表示するタブが、アプリケーションタブ内で開かれます。「Applications」ウィンドウ内のアプリケーションのノードの下に、ヒープダンプのノードが表示されます。ヒープダンプの操作方法の詳細については、次のドキュメントを参照してください。