■実行形式
性能情報分析は、次の2つのステップで行います。
性能情報収集
JDK/JRE 5.0(シリアルGC)の場合:
java -XX:-UseParallelGC -Xrunfts:[OPTIONS] クラス名 |
JDK/JRE 1.4の場合:
java -Xrunfts:[OPTIONS] クラス名 |
性能情報表示
java -jar fts.jar [help] [version] [data=folder] [ofile=file] [heap[,s=1|2|3|4] [port=n]] [cpu] [sample] [trace[,a=ave][,s=score][,t=token[,negative]]] |
性能情報収集において生成されるファイル名については、“■データファイル一覧”を参照してください。
以下の要因により、OutOfMemoryErrorが発生することがあります。必要に応じて-Xmxオプションで最大使用可能量を調節してください。
性能情報収集時は、通常実行時よりメモリを多く消費します。
性能情報収集したデータが大きい場合、性能情報表示においてメモリを多く消費します。
性能情報収集で指定しなかった情報を表示しようとした場合、以下のいずれかの状態となります。
“表示すべき情報がありません!”というメッセージがコンソール上に出力されます。
GUIが起動されてもGUI上に何も表示されません。
情報収集しているJava VMのプロセスに対して、SIGQUITを発行し、情報収集を停止・再開させることができます。対象となる情報はメモリ/GC情報とサンプリング情報です。
kill -QUIT process-id |
■データファイル一覧
情報収集によって生成されるデータファイル名は以下のとおりです。ただし、オプションにより生成されないファイルもあります。
ファイル名 | 保存データ | オプション |
---|---|---|
a.evt | イベント情報 | heap |
class.lst | クラス名リスト | cpu,trace |
cpu.smp | サンプリング情報 | sample |
method.id | メソッドリスト | cpu,sample,trace |
mth.2c | CPU情報 | cpu |
trc.m2 | メソッドトレース情報 | trace |
■オプション
“実行形式”で示した各ステップのオプションを説明します。
◆性能情報収集オプション
オプションは","(カンマ)で区切って複数指定できます。
ただしheap、cpu、sampleおよびtraceオプションを同時に指定できません。
d=folder | 性能情報格納先ディレクトリを、folderに指定します。ディレクトリは存在している必要があります。 |
log=file | 性能情報収集のログの出力先ファイル名を指定します。パスは存在している必要があります。 |
g=0|1 | 起動時から性能情報収集するかどうか指定します。
性能情報収集を開始/終了させるには、性能情報収集しているJava VMのプロセスに対して、ssbコマンド(Windows(R))またはSIGQUIT(Solaris/Linux)を発行します。 |
b=0|1|2|3|4 | ssbを利用した性能情報収集の一時停止・再開・出力を行えるようにします。ssbの使用方法は“A.3.4 情報収集制御の方法”を参照してください。
注) b=1(b=2)とb=3(b=4)のどちらを指定するかは動作環境に依存します。そのため、b=1(b=2)で正しく動作しなかった場合、b=3(b=4)を指定してください。 |
heap=0|1|2|3 | メモリ/GC情報収集のタイミングを指定します。
|
port=n | リモートマシンでメモリ/GC情報を収集する場合に指定します。 |
server=host | リモート情報収集機能を利用する場合に指定します。 |
cpu=0|1 | CPU情報を収集するかどうか指定します。
本オプションは、Linuxでは使用することができません。 |
sample=n | サンプリング情報を収集する際のインターバル時間を指定します。
指定できる有意義な最小時間は、システムに依存するため、指定した時間によっては有効な値を得られない場合があります。 |
trace=n | メソッドトレース情報を収集する際のトレースの深さを指定します。
本オプションは、Linuxでは使用することができません。 |
◆性能情報表示オプション
help | ヘルプがコンソールに出力されます。 |
version | バージョン情報がコンソールに出力されます。 |
data=folder | 性能情報格納先ディレクトリを、folderに指定します。 |
ofile=file | テキストデータの出力先ファイル名を、fileに指定します。パスは存在している必要があります。
|
heap | メモリ/GC情報が表示されます。 |
s=0|1|2|3|4 | heapオプションのサブオプションです。 |
port=n | リモート情報収集機能を利用する場合、利用するport番号を、nに指定します。 |
cpu | CPU情報が表示されます。 |
sample | CPUサンプリング情報が表示されます。 |
trace | メソッドトレース情報が表示されます。 |
a=ave | traceオプションのサブオプションです。 |
s=score | traceオプションのサブオプションです。 |
t=token | traceオプションのサブオプションです。 |
negative | traceオプションのサブオプションです。 |
■各種性能情報表示画面
情報表示機能のheap、cpu、sampleまたはtraceオプションを指定すると表示される以下の画面について説明します。
◆メモリ/GC情報画面
縦軸をメモリサイズ、横軸を時間としてヒープ使用状況をグラフ表示します。
heapオプションを指定すると以下のような画面が表示されます。
画面下部の[ズーム]コンボボックスで、横軸の時間軸スケールを変更できます。
また、[消費メモリ]、[利用可能メモリ]、[GC実行中]の各チェックボックスで、グラフの着色表示ができます。
以下の図は[GC実行中]をオンにしてそれ以外をオフにしたグラフです。
さらに[詳細情報]ボタンを押下して、ヒープ使用状況プロパティダイアログを表示できます。
◆メモリ/GC情報画面(リアルタイム表示)
リモートマシン上のメモリ/GC情報を、リアルタイムに表示できます。
以下の手順でリアルタイム表示します。
使用するport番号は12345、リモートマシン名をremote-machineとします。
heapオプションとportオプションを指定して、情報表示します。
java -jar fts.jar heap port=12345 |
以下のような画面が表示されます。
port/serverオプションを指定して、情報収集します。
JDK/JRE 5.0(シリアルGC)の場合:
java -XX:-UseParallelGC -Xrunfts:heap=2,port=12345,server=remote-machine |
JDK/JRE 1.4の場合:
java -Xrunfts:heap=2,port=12345,server=remote-machine |
以下のようにリアルタイムに情報表示されます。
リアルタイム表示している画面を終了させると、情報収集している側のJava VMが終了しますのでご注意ください。
◆CPU情報画面
メソッドごとの呼出し回数とCPU時間を表示します。
cpuオプションを指定すると以下のような画面が表示されます。
画面上部の[並べ替え条件]コンボボックスで、メソッド表示の並びを変更できます。
また、メソッドの名前部分をダブルクリックするとメソッド情報が表示されます。
画面下部の絞込み条件指定パネルから、表示条件を指定できます。
[絞り込みタイプ]コンボボックスから絞込み条件を選択します。
[絞り込みタイプ]に“ランク”を選択した場合、指定されたランク以内のメソッドに表示が制限されます。
[絞り込みタイプ]に“回数”を選択した場合、指定された回数以上のメソッドに表示が制限されます。
[絞り込みタイプ]に“文字列”を選択した場合、テキスト入力域に指定した空白で区切られた複数文字列を含むメソッドに表示が制限されます。ただし、テキスト入力域は英文字のみ入力可能です。
また、表示された[指定条件の否定]チェックボックスをオンにすると、テキスト入力域に指定された文字列を含まないメソッドに表示が制限されます。
タイプ別に指定された条件は重複して絞り込みを行います。すべての条件を設定すると、“ランク100位以内、かつ、回数や時間10000以上、かつ、javaという文字列を含むメソッド”のような指定になります。
◆サンプリング情報画面
メソッドごとのサンプリング時間を表示します。
sampleオプションを指定すると以下のような画面が表示されます。
メソッドの名前部分のダブルクリックによるメソッド情報の表示や、表示条件の指定は、CPU情報表示画面と同様に行えます。
◆メソッドトレース情報画面
メソッドごとのメソッドトレースを表示します。
traceオプションを指定すると以下のような画面が表示されます。
各行は以下のように構成されています。
[展開/非展開] - 総CPU時間に対する当該メソッドの割合 - CPU時間 - 実行回数 - メソッド名 |
[■ボタン]をクリックするとメソッドのトレースルートが展開されます。[□ボタン]をクリックするとトレースルートが閉じられます。トレースルートは複数ルートへの分岐点または最下層まで展開されます。
メソッドトレースのトップに現れるCPU時間/実行回数は、そのメソッドを呼び出しているすべてのトレースルートの合計を表しています。また、メソッドトレース上に現れるCPU時間/実行回数はそのメソッド自身のCPU時間/実行回数ではなく、そのメソッドを通過するトレースルートでのメソッドトレースのトップに現れるメソッドに対するCPU時間/実行回数を表しています。
メソッドの名前部分のダブルクリックによるメソッド情報の表示や、表示条件の指定は、CPU情報表示画面と同様に行えます。