The Profiler Options dialog consists of the following tabs:
Use the options on these tabs to indicate which objects to profile and which elements to display in the profile.
After specifying the Profiler options, click OK to start the Profiler. Depending on your project configuration, the Profiler does one of two things:
If you are using a regular Identity Manager project with an Embedded Identity Manager Instance, the Profiler performs a full build, deploys into the NetBean’s application server, and starts the Profiler.
If you are using a regular Identity Manager project with an External Identity Manager Instance or the remote Identity Manager project, the Profiler attaches to the Identity Manager instance configured for the project.
You can select IdM -> Set Identity Manager Instance to control the Identity Manager Instance action for the project.
The Mode tab provides the following options:
IDM Objects Only: Select to profile form, rule, workflow, and XPRESS objects. Excludes Java objects from the profile.
Java and IDM Objects: Select to profile form, Java, rule, workflow, and XPRESS objects.
The Java and IDM Objects option is not available if you are using a regular Identity Manager project with an external Identity Manager instance or using a remote Identity Manager project.
You cannot change the Mode option while the Profiler is running. You must stop the Profiler to change the option.
The IDM Object Filters tab provides the following options:
Show IDM Object details
Include Anonymous Sources
Anonymous sources are forms (or portions of a form) that are generated on the fly (such as Login forms and MissingFields forms) and do not correspond to a persistent form that resides in the Identity Manager repository.
Select this box to include Anonymous sources in the snapshot.
Clear this box to exclude Anonymous sources from the snapshot.
Select the Java Filters tab to
Include or exclude Java filters
Create new filters
Delete existing filters
Restore the default filters
Java filters are given in terms of method patterns, and they are expressed in patterns that include or exclude based on canonical method name. Where a canonical method name is:
fully-qualified-class-name.method-name(parameter-type-1, parameter-type-2, ...)
For constructors, method-name is <init>.
Here are a few examples:
To exclude all constructors, enable the Exclude box and add the following filter:
*.<init>(*)
To exclude all constructors with a single org.w3c.dom.Element parameter, enable the Exclude box and add the following filter:
*.<init>(org.w3c.dom.Element)
To exclude all Identity Manager classes, enable the Exclude box and add the following filters:
"com.waveset.*" "com.sun.idm.*"
To instrument your custom code only, disable the Exclude box, remove the initial * include filter, and then add the following filter:
"com.yourcompany.*"
The last two examples are currently equivalent because the filters are applied only to your custom classes and Identity Manager classes.
If necessary, you can instrument other jars by modifying the following lines in build.xml as appropriate. For example,
<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> |
By default, the configuration includes all your custom classes and most Identity Manager classes. A number of Identity Manager classes are forcibly excluded— because enabling them would break the Profiler.
For example, classes from the workflow, forms, and XPRESS engines are excluded or the Profiler would produce an unintelligible snapshot when profiling Java and Identity Manager objects.
Note that Java filters provide much more filtering granularity than IDM Object Filters. Java instrumentation adds significant overhead to the execution time, which can drastically skew the profiling results. Because Identity Manager objects are interpreted rather than compiled, the instrumentation overhead is negligible. So for example, there is basically no reason to exclude workflow A and include workflow B, and so forth.
You cannot modify Java filters while the Profiler is running. You must stop the Profiler before changing Java filters.
The Miscellaneous tab provides the following options:
Prune snapshot nodes where execution time is 0:
Disable this option (default) if you want the snapshot to include invocation information for all executed entities— even those whose execution time is zero.
It might be useful to have the number of invocations, even for nodes where there is no execution time.
Enable this option to remove these nodes, which allows you to focus on the most relevant profiling data. In addition, enabling this option can provide a large savings in Profiler snapshot size.
Automatically Open Browser Upon Profiler Start:
Enable this option (default) when you launch the Profiler to automatically open a browser that points to the Identity Manager instance being profiled.
Disable this option if you do not want to open a browser.
Include Java Sources in Snapshot:
Enable this option (default) to include Java sources for any Java methods referenced by the profiling data in the Snapshot. You should always use this setting for snapshots in the field. Custom Java is relatively small and it is very valuable to have for support.
Disable this option only if you are profiling Identity Manager and have the complete Identity Manager source available.
In this situation, you do not want to include the Identity Manager source because it can create extremely large snapshots. (See How the Profiler Locates and Manages Source for more information.)