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」ウィンドウ内のアプリケーションのノードの下に、ヒープ・ダンプのノードが表示されます。ヒープ・ダンプの操作方法の詳細については、次のドキュメントを参照してください。