ユーザ拡張性能解析トレースのトレース対象メソッドの設定は,ユーザ拡張性能解析トレース設定ファイルを使って設定します。ユーザ拡張性能解析トレース設定ファイルの内容は次のどれかに記述できます。
ユーザ拡張性能解析トレース設定ファイルの記述形式を次に示します。
<指定形式>※,<識別ID>,<サブクラスフラグ>[,[<イベントID>][,[<トレース取得レベル>]]][#コメント] |
注1 []で囲んだ項目は省略できます。
注2 クラス名およびパッケージ名が一致するすべてのメソッドを対象とする場合,jvm.userprf.ExtendedSettingプロパティの値をtrueに設定してください。
注※ <指定形式>は次のどれかの形式で指定します。
記述形式の例
com.sample.Test.method(),TEST1,false,0xae02,A |
ユーザ拡張性能解析トレース設定ファイルの記述項目を次に示します。
ユーザ拡張性能解析トレース設定ファイルの記述規則を次に示します。
表7-8 クラスまたはインタフェースの指定によるトレース対象メソッド
クラスまたはインタフェース | トレース対象メソッド | |
---|---|---|
サブクラスフラグにfalseを指定した場合 | サブクラスフラグにtrueを指定した場合 | |
クラス | 指定したクラスのメソッド | 指定したクラスのメソッドと,そのメソッドをオーバーライドしているメソッド |
インタフェース | なし | 指定したインタフェースを直接実装しているクラス※1と間接実装しているクラス※2のメソッド,およびそのメソッドをオーバーライドしているメソッド |
注※1 クラスの宣言時にimplementsを使用して指定したインタフェースを実装しているクラスです。
注※2 指定したインタフェースを直接実装しているクラスのサブクラス,または指定したインタフェースを継承しているインタフェースを直接実装しているクラスです。
ここでは,トレース対象メソッドごとに,ユーザ拡張性能解析トレース設定ファイルの記述例について説明します。
なお,ここで説明する記述例は,パッケージ名が「com.sample」で,次の図に示すクラス構造を持っているアプリケーションとします。
図7-8 アプリケーションのクラス構造の例
メソッド名と引数の型が一致するメソッドをトレースの対象とする場合のユーザ拡張性能解析トレース設定ファイルの記述例を次に示します。
com.sample.ClassA.methodA1(java.lang.String,java.lang.Object),1000,false |
サブクラスフラグがfalseの場合,記述したメソッド名と引数の型が一致するメソッドがトレース対象となります。
トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。また,識別IDに「1000」を設定しているため,識別IDとして「1000」が出力されます。
com.sample.ClassA.methodA2(),2000,true |
サブクラスフラグがtureの場合,メソッド名と引数の型が記述と一致するメソッドに加えて,記述したメソッドをオーバーライドしているメソッドもトレース対象となります。
トレース対象メソッドに対してイベントIDの設定を省略しているため,トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae00,メソッドの出口で0xae01のデフォルト値が出力されます。また,識別IDに「2000」を設定しているため,トレース対象のすべてのメソッドに識別IDとして「2000」が出力されます。
メソッド名が一致するメソッドをトレースの対象とする場合のユーザ拡張性能解析トレース設定ファイルの記述例を次に示します。
com.sample.ClassA.methodA1(*),methodA1,false,0xae30 |
サブクラスフラグがfalseの場合,記述したメソッド名と一致するメソッドのすべてがトレース対象となります。
トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae30,メソッドの出口で0xae31が出力されます。また,トレース対象のすべてのメソッドに識別IDとして「methodA1」が出力されます。
com.sample.ClassA.methodA1(*),methodA1,true,0xae30 |
サブクラスフラグがtrueの場合,記述したメソッド名と一致するメソッドのすべてがトレース対象となります。また,記述したメソッドに加えて,記述したメソッドをオーバーライドしているメソッドもトレース対象となります。
トレース対象となったメソッドが呼び出されると,イベントIDとしてメソッドの入口で0xae30,メソッドの出口で0xae31が出力されます。また,トレース対象のすべてのメソッドに識別IDとして「methodA1」が出力されます。
メソッドと引数を省略して,クラス名が一致するすべてのメソッドをトレースの対象とする場合のユーザ拡張性能解析トレース設定ファイルの記述例を次に示します。
com.sample.ClassA,TEST01,false |
サブクラスフラグがfalseの場合,記述したクラス名(ClassAクラス)のすべてのメソッドがトレース対象となります。
トレース対象となったメソッドが呼び出されると,イベントIDが省略されているため,メソッド入口で0xae00,メソッド出口で0xae01が出力されます。また,これらすべてのメソッドに識別IDとして「TEST01」が出力されます。
com.sample.ClassB,TEST02,true |
サブクラスフラグがtrueの場合,記述したクラス名(ClassBクラス)のすべてのメソッドと,そのメソッドをオーバーライドしているメソッドのすべてがトレース対象となります。
トレース対象となったメソッドが呼び出されると,イベントIDが省略されているため,メソッド入口で0xae00,メソッド出口で0xae01が出力されます。また,これらすべてのメソッドに識別IDとして「TEST02」が出力されます。
クラス名とメソッド名と引数を省略して,パッケージ名が一致するすべてのクラスのすべてのメソッドをトレースの対象とする場合のユーザ拡張性能解析トレース設定ファイルの記述例を次に示します。
com.sample.*,6000,false |
サブクラスフラグがfalseの場合,記述したパッケージ(com.sample)にあるすべてのクラスのすべてのメソッドがトレース対象となります。
トレース対象となったメソッドが呼び出されると,イベントIDが省略されているため,メソッド入口で0xae00,メソッド出口で0xae01が出力されます。また,これらすべてのメソッドに識別IDとして「6000」が出力されます。
com.sample.*,6000,false |
サブクラスフラグがtrueの場合,記述したパッケージ(com.sample)にあるすべてのクラスのすべてのメソッドと,そのメソッドをオーバーライドしているメソッドのすべてがトレース対象となります。
トレース対象となったメソッドが呼び出されると,イベントIDが省略されているため,メソッド入口で0xae00,メソッド出口で0xae01が出力されます。また,これらすべてのメソッドに識別IDとして「6001」が出力されます。
ユーザ拡張性能解析トレース設定ファイルを作成するときの注意事項を次に示します。