4.2.3 クラス別統計情報の出力
ここでは,クラス別統計情報を出力する方法について説明します。
クラス別統計情報を拡張スレッドダンプに出力するには,jheapprofコマンドを利用します。クラス別統計情報を出力したいJavaプロセスや,参照関係情報を出力したいクラスを指定して,jheapprofコマンドを実行します。
jheapprofコマンド実行時には,次の指定ができます。
-
クラス別統計情報を取得する前にGCを実行するかどうかの指定
次に,jheapprofコマンドの実行形式と実行例,および各指定方法について説明します。
(1) jheapprofコマンドの実行形式と実行例
jheapprofコマンドの実行形式と実行例を次に示します。jheapprofコマンドの詳細については,「jheapprof(クラス別統計情報付き拡張スレッドダンプの出力)」を参照してください。
- 実行形式
jheapprof [-f|-i] [-explicit|-noexplicit] [-class <クラス名>] [-fullgc|-copygc|-nogc] [-garbage|-nogarbage] [-rootobjectinfo|-norootobjectinfo] [-rootobjectinfost <サイズ>] [-force] -p <プロセスID>
注 -explicit, -noexplicitは使用できません。
- 実行例
-
ここでは,プロセスIDが2463のJavaプロセスのクラス別統計情報を出力します。
-
-pオプションに,クラス別統計情報を出力したいJavaプロセスのプロセスIDを指定して,jheapprofコマンドを実行します。
% jheapprof -p 2463
jheapprofコマンドで-fオプションを省略している場合,次の確認メッセージが表示されます。
プロセスIDを確認するメッセージが次の形式で表示されます。
send SIGQUIT to 2463: ? (y/n)
-
yを入力します。
クラス別統計情報付き拡張スレッドダンプが出力されます。実行中のJavaプログラムでは次のメッセージが出力されます。
Writing Java core to javacore2463.030806215140.txt... OK
実行中のJavaプログラムは,カレントディレクトリにクラス別統計情報付き拡張スレッドダンプ(javacore<プロセスID>.<日時>.txt)を作成し,プログラムを継続します。
(2) GCの実行有無を指定する場合
クラス別統計情報を出力する前に,GCを実行するかどうかを選択できます。この機能を統計前のGC選択機能といいます。クラス別統計情報を出力する前に,GCを実行するかどうかは,jheapprofコマンドに次のどれかのオプションを指定して実行します。
-
-fullgc
FullGCを実行してから,クラス別統計情報を出力します。
-
-copygc
CopyGCを実行してから,クラス別統計情報を出力します。
-
-nogc
GCを実行しないで,クラス別統計情報を出力します。
統計前のGC選択機能については,「4.6 統計前のGC選択機能」を参照してください。なお,Tenured領域内不要オブジェクト統計機能を実行する場合,統計前のGC選択機能は実行できません。