Java VisualVMは、JDKダウンロードに含まれる最新ツールの1つです。このツールは、Javaアプリケーションの開発者が、アプリケーションのトラブルシューティングを行ったり、アプリケーションのパフォーマンスをモニターおよび改善したりするのに役立ちます。Java VisualVMを使用すると、ヒープ・ダンプの生成および解析、メモリー・リークの特定、ガベージ・コレクションの実行およびモニター、およびメモリーとCPUの簡易プロファイリングの実行が可能になります。またこのツールは、チューニング、ヒープ・サイズ決定、オフライン分析、およびポストモーテム診断にも役立ちます。
さらに、Java VisualVMの機能を拡張する既存のプラグインを使用することもできます。たとえば、JConsoleツールのほとんどの機能が、MBeansタブおよびJConsoleプラグイン・ラッパー・タブを介して使用できます。標準Java VisualVMプラグインのカタログから選択するには、Java VisualVMのメイン・ウィンドウの「ツール」メニューから「プラグイン」を選択します。
詳細は、Java VisualVMのドキュメントを参照してください。
次の項では、Java VisualVMによるトラブルシューティングについて説明します。
Java VisualVMでは次のトラブルシューティング・アクティビティを実行できます。
ローカルおよびリモートのJavaアプリケーションの一覧を表示します。
アプリケーションの構成や実行環境を表示します。このツールはアプリケーションごとに、基本的な実行時情報(PID、ホスト、mainクラス、プロセスに渡された引数、JVMのバージョン、JDKホーム、JVMフラグ、JVM引数およびシステム・プロパティ)を表示します。
指定されたアプリケーションでOutOfMemoryError
例外が発生した場合のヒープ・ダンプの作成を、有効および無効にします。
アプリケーションのメモリー消費、実行中のスレッド、ロード済みのクラスをモニターします。
ガベージ・コレクションをすぐにトリガーします。
ヒープ・ダンプをすぐに作成します。その後、いくつかのビュー(サマリー、クラス別、インスタンス別)でヒープ・ダンプを表示できます。また、ヒープ・ダンプをローカル・ファイル・システムに保存することもできます。
アプリケーション・パフォーマンスのプロファイリングやメモリー割当ての分析を行います(ローカル・アプリケーションの場合のみ)。また、プロファイル・データを保存することもできます。
スレッド・ダンプ(アプリケーションのアクティブ・スレッドのスタック・トレース)をすぐに作成します。その後、スレッド・ダンプを表示できます。
コア・ダンプを分析します(Oracle SolarisおよびLinuxオペレーティング・システムの場合)。
アプリケーション・スナップショットを取ることで、アプリケーションをオフラインで分析します。
コミュニティから寄贈された追加プラグインを取得します。
独自プラグインの作成と共有を行います。
MBeanを表示したり操作したりします(MBeanタブ・プラグインのインストール後)。
Java VisualVMを起動するとメインのアプリケーション・ウィンドウが開き、ローカル・マシン上で実行されているJavaアプリケーションの一覧、接続されたすべてのリモート・マシン上で実行されているJavaアプリケーションの一覧、取得して保存されたすべてのJVMコア・ダンプの一覧(Oracle SolarisおよびLinuxオペレーティング・システムの場合)、取得して保存されたすべてのアプリケーション・スナップショットの一覧が表示されます。
Java VisualVMは、JDK上で実行されているJavaアプリケーションや、正しいシステム・プロパティとともに起動されたJavaアプリケーションのJava Management Extensions (JMX)エージェントを自動的に検出して接続します。ツールがリモート・マシン上のエージェントを検出して接続するには、リモート・マシン上でjstatd
デーモンが実行されている必要があります(「jstatdデーモン」を参照)。ターゲット・アプリケーション内で実行されているJMXエージェントをJava VisualVMが自動的に発見して接続できない場合、ツールはこれらの接続を明示的に作成する方法を提供します。