「Java Filters」タブは次の場合に選択します。
Java フィルタを含める、または除外する
新しいフィルタを作成する
既存のフィルタを削除する
デフォルトのフィルタを復元する
Java フィルタは、メソッドパターンの形で指定され、「正規メソッド名」に基づいて含めるか除外するかを示すパターンで表現されます。正規メソッド名は次のとおりです。
fully-qualified-class-name.method-name( parameter-type-1, parameter-type-2, ... )
コンストラクタの場合、method-name は <init> です。
次に、いくつかの例を示します。
すべてのコンストラクタを除外するには、「Exclude」ボックスを有効にし、次のフィルタを追加します。
*.<init>(*)
単一の org.w3c.dom.Element パラメータを持つすべてのコンストラクタを除外するには、「Exclude」ボックスを有効にし、次のフィルタを追加します。
*.<init>(org.w3c.dom.Element)
すべての Identity Manager クラスを除外するには、「Exclude」ボックスを有効にし、次のフィルタを追加します。
"com.waveset.*" "com.sun.idm.*"
カスタムコードだけを計測するには、「Exclude」ボックスを無効にし、最初の * include フィルタを削除してから、次のフィルタを追加します。
"com.yourcompany.*"
現在では、フィルタはカスタムクラスと Identity Manager クラスだけに適用されるため、最後の 2 つの例は等価です。
必要な場合は、build.xml の次の行を適切に編集すると、ほかの JAR を計測できます。次に例を示します。
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}"> <fileset dir="${lighthouse-dir}/WEB-INF"> <include name="lib/idm*.jar"/> <include name="classes/**/*.class"/> </fileset> </instrument> |
デフォルトの設定では、ユーザーのすべてのカスタムクラスとほとんどの Identity Manager クラスが含められます。いくつかの Identity Manager クラスは、有効にするとプロファイラで障害が発生するため、強制的に除外されています。
たとえば、ワークフロー、フォーム、および XPRESS の各エンジンのクラスは除外されています。そうしないと、プロファイラが Java および Identity Manager オブジェクトのプロファイルを作成する際に、理解不能なスナップショットが生成されます。
「Java Filters」では、「IDM Object Filters」よりはるかに詳細なフィルタリングが提供されます。Java 計測では、かなりのオーバーヘッドが実行時間に追加され、それによってプロファイリング結果が大幅に歪曲される可能性があります。Identity Manager オブジェクトはコンパイルされるのではなく解釈されるので、計測のオーバーヘッドは無視できるほどの大きさです。したがって、ワークフロー A を除外してワークフロー B を含めるなどには、基本的に理由がありません。
プロファイラの実行中に Java Filters を変更することはできません。Java Filters を変更する前に、プロファイラを停止する必要があります。