Java SE 7 向けトラブルシューティングツール (Solaris OS および Linux)
モニタリングツール
デバッグツール
スクリプトツール
モニタリングツール
Java™ VisualVM は、Java アプリケーションをトラブルシューティングするためのモニタリング/プロファイリングツールです。これには jvmstat や JMX、CPU/メモリープロファイリングといったさまざまなテクノロジが組み込まれていますが、その目的は、使いやすい単一の統合視覚化ツールを提供することです。開発者は、公開 API を使って独自の拡張をすばやく作成できるほか、それらの独自拡張を中央リポジトリ上でコミュニティーと共有することもできます。
- ローカルおよびリモートの Java アプリケーションを表示します。
- アプリケーションの構成や実行環境を表示します。
- アプリケーションのメモリー消費や実行時動作をモニターします。
- アプリケーションのスレッドをモニターします。
- アプリケーションパフォーマンスのプロファイリングやメモリー割り当ての分析を行います。(ローカルアプリケーションのみ。)
- スレッドダンプを作成および表示します。
- ヒープダンプを作成および参照します。
- コアダンプを分析します。
- アプリケーションの分析をオフラインで行います。
- コミュニティーから寄贈された追加プラグインを取得します。
- 独自プラグインの作成と共有を行います。
ローカルまたはリモートマシン上の Java アプリケーションおよび Java VM のモニターと管理を行うための GUI を起動します。
- Java プロセス、ホスト、または JMX エージェントへの接続。
- CPU 使用率、ヒープメモリー、スレッド、クラスのグラフィカルな概要。
- 稼動時間、コンパイル時間、ファイナライズ保留中のオブジェクトなど、主なデータのサマリー。
- メモリー統計 (ガベージコレクションを含む)。
- ガベージコレクションを要求します。
- スレッド統計。
- デッドロックの検出。
- クラス統計。
- すべてのプラットフォームおよびアプリケーション MBean のツリー構造。
- MBean の属性の値を設定します。
- MBean の操作を呼び出します (ヒープダンプの実行など)。
- MBean の通知に登録します。
- 仮想マシン、コンパイラ、オペレーティングシステムに関する情報。
- JConsole を実行している VM にフラグを渡します。
計測 Java 仮想マシンを一覧表示します。
計測 Java VM のパフォーマンス統計を表示します。
- クラスローダーの動作
- HotSpot Just-in-Time コンパイラの動作 (合計およびメソッド別)
- GC ヒープの動作
- 各世代領域の動作とサイズ
- 計測 HotSpot Java VM の作成と終了のモニター。
- リモートモニタリングツールが Java VM に接続するためのインタフェースを提供します。
デバッグツール
HPROF プロファイラ
クラスのプロファイリング情報をファイルまたはソケットに、ASCII またはバイナリで書き込みます。
- ヒープ割り当てプロファイリング。
- ヒープダンプ。
- CPU 使用率 - スレッド、メソッド用。
- モニター競合プロファイリング。
HPROF ツールを呼び出すには:java -agentlib:hprof ToBeProfiledClass
完全なオプション一覧を出力するには:java -agentlib:hprof=help
単純な対話型コマンド行デバッガを起動します。
- Java オブジェクトおよびプリミティブ値を表示します。
- 実行中のスレッドを一覧表示します。
- 現在のスレッドスタックをダンプします。
- ブレークポイントを設定します。
- ステップ実行します。
- 例外を調べます。
バイナリヒープダンプを解析し、Web ブラウザを起動し、標準的なクエリーを提供します。
- 標準的なクエリー (クラス、オブジェクト、クラスインスタンス、オブジェクトルートセットからの参照チェーン、到達可能オブジェクトなど) を実行します。
- オブジェクト割り当て追跡のオン/オフを切り替えます。
- オブジェクト参照追跡のオン/オフを切り替えます。
- 「到達可能オブジェクト」クエリーから除外するオブジェクトを指定します。
- jhat を実行している Java VM にフラグを渡します。
- 組み込みの Object Query Language でカスタムクエリーを開発します。
- 2 つのダンプ内のオブジェクトを比較します。
- 実行中のプロセス、コアファイル、またはリモートデバッグサーバーのコマンド行フラグやシステムプロパティーを出力します。
- プロセスの特定の Java VM フラグの値を動的に設定、設定解除、または変更します。
- プロセス、コアファイル、またはリモートデバッグサーバーの共有オブジェクトマッピングを出力します。
- プロセス、コアファイル、またはリモートデバッグサーバーの Java ヒープ (すべてのオブジェクト、またはライブオブジェクトのみ) をバイナリ形式でファイルにダンプします。
- プロセスからの応答がない場合にプロセスの Java ヒープダンプを強制します。
- プロセス、コアファイル、またはリモートデバッグサーバーのヒープサマリーを出力します。
- プロセス、コアファイル、またはリモートデバッグサーバーのヒストグラム (すべてのオブジェクト、またはライブオブジェクトのみ) を出力します。
- ファイナライズを待っているオブジェクトに関する情報を出力します。
- Permanent 世代のクラスローダー統計を出力します。
- VM にフラグを渡します。
Serviceability Agent Debug Daemon。デバッグサーバーとして機能します。
- Java プロセスまたはコアファイルに接続します。
- リモートクライアントは RMI を使ってサーバーに接続できます。
- プロセス、コアファイル、またはリモートデバッグサーバーのスレッドのスタックトレースを出力します
- プロセス、コアファイル、またはリモートデバッグサーバーの並行ロックに関する情報を出力します
- プロセスからの応答がない場合にプロセスのスタックダンプを強制します
スクリプトツール
- コマンド行スクリプトシェル:スクリプトを対話型モードまたはバッチモードで評価または実行します。
- VM にフラグを渡します。
- Java システムプロパティーを設定します。