「Profiler Options」ダイアログは次のタブで構成されています。
これらのタブにあるオプションを使用して、どのオブジェクトのプロファイルを作成するか、およびどの要素をプロファイルに表示するかを指定します。
プロファイラのオプションを指定したら、「OK」をクリックしてプロファイラを起動します。プロジェクトの設定に応じて、プロファイラは 2 つの処理のどちらかを実行します。
通常の Identity Manager プロジェクトを「組み込み」の Identity Manager インスタンスで使用する場合、プロファイラは完全なビルドを実行して NetBeans アプリケーションサーバーに配備し、プロファイラを起動します。
通常の Identity Manager プロジェクトを「外部」の Identity Manager インスタンスで使用する場合、またはリモートの Identity Manager プロジェクトを使用する場合、プロファイラはそのプロジェクト用に設定されている Identity Manager インスタンスに接続します。
「IDM」>「Set Identity Manager Instance」を選択して、プロジェクトに対する Identity Manager インスタンスの動作を制御できます。
「Mode」タブには次のオプションがあります。
「IDM Objects Only」: フォーム、規則、ワークフロー、および XPRESS オブジェクトのプロファイルを作成する場合に選択します。Java オブジェクトはプロファイルから除外されます。
「Java and IDM Objects」: フォーム、Java、規則、ワークフロー、および XPRESS オブジェクトのプロファイルを作成する場合に選択します。
通常の Identity Manager プロジェクトを「外部」の Identity Manager インスタンスで使用する場合、またはリモートの Identity Manager プロジェクトを使用する場合、「Java and IDM Objects」オプションは使用できません。
プロファイラの実行中に「Mode」オプションを変更することはできません。オプションを変更するには、プロファイラを停止する必要があります。
「IDM Object Filters」タブには次のオプションがあります。
Show IDM Object details
Include Anonymous Sources
「匿名ソース」は、一時的に生成されるフォーム (またはフォームの一部) であり、Identity Manager リポジトリに常駐する持続的フォームとは対応しません。匿名ソースの例には、ログインフォームや MissingFields フォームがあります。
匿名ソースをスナップショットに含める場合は、このボックスを選択します。
匿名ソースをスナップショットから除外する場合は、このボックスの選択を解除します。
「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 を変更する前に、プロファイラを停止する必要があります。
「Miscellaneous」タブには次のオプションがあります。
Prune snapshot nodes where execution time is 0:
実行時間がゼロのエンティティーも含め、実行されたすべてのエンティティーの呼び出し情報をスナップショットに含めるには、このオプションを無効にします (デフォルトで無効)。
実行時間が 0 のノードについても、呼び出し回数の情報が役立つことがあります。
このようなノードを削除するには、このオプションを有効にします。 この場合、もっとも関連のあるプロファイリングデータに焦点を当てることができます。また、このオプションを有効にすると、プロファイラのスナップショットサイズを大幅に節約できます。
Automatically Open Browser Upon Profiler Start:
プロファイラの起動時に、プロファイルを作成する Identity Manager インスタンスを指すブラウザを自動的に開くようにするにはこのオプションを有効にします (デフォルト)。
ブラウザを開かないようにするには、このオプションを無効にします。
Include Java Sources in Snapshot:
プロファイリングデータで参照されているすべての Java メソッドの Java ソースをスナップショットに含めるには、このオプションを有効にします (デフォルト)。フィールドでは常にこのスナップショットの設定を使用するようにしてください。カスタム Java は比較的小さく、その情報があるとサポートには大変役立ちます。
Identity Manager のプロファイルを作成する場合で、Identity Manager の完全なソースが利用可能なときだけ、このオプションを無効にします。
この場合、Identity Manager のソースを含めるとスナップショットがきわめて大きくなるので、それは望ましくありません。詳細は、「プロファイラがソースを見つけて管理するしくみ」を参照してください。