“Profiler 选项”对话框由以下选项卡组成:
使用这些选项卡上的选项,可指明要对哪些对象进行性能分析,以及要显示在性能分析中的元素。
指定 Profiler 选项后,单击“确定”可启动 Profiler。根据项目配置,Profiler 将执行以下两项操作之一:
如果使用的是常规 Identity Manager 项目(包含嵌入式 Identity Manager 实例),则 Profiler 会执行完整的生成过程,并将项目部署到 NetBeans 应用服务器中,然后启动 Profiler。
如果使用的是常规 Identity Manager 项目(包含外部 Identity Manager 实例)或远程 Identity Manager 项目,则 Profiler 会附加到为该项目配置的 Identity Manager 实例上。
可以选择 "IdM" ->“设置 Identity Manager 实例”来控制用于该项目的 Identity Manager 实例操作。
“模式”选项卡提供了以下选项:
仅 IDM 对象:选择该选项可分析表单、规则、工作流和 XPRESS 对象,但不能分析 Java 对象。
Java 和 IDM 对象:选择该选项可分析表单、Java、规则、工作流和 XPRESS 对象。
如果使用的是常规 Identity Manager 项目(包含外部 Identity Manager 实例)或远程 Identity Manager 项目,则“Java 和 IDM 对象”选项不可用。
在运行 Profiler 时,无法更改“模式”选项。必须先停止 Profiler 才能更改该选项。
“IDM 对象过滤器”选项卡提供了以下选项:
显示 IDM 对象详细信息
包含匿名源
匿名源是实时生成的表单或表单部分(如登录表单或 MissingFields 表单),它与驻留在 Identity Manager 系统信息库中的持久性表单之间没有对应关系。
选中此复选框可以在快照中包含匿名源。
清除此复选框可以从快照中排除匿名源。
选择“Java 过滤器”选项卡可以执行以下操作:
包含或排除 Java 过滤器
创建新的过滤器
删除现有的过滤器
恢复默认的过滤器
Java 过滤器以方法模式的形式提供,它们采用根据规范的方法名称执行包含或排除操作的模式来表示。其中,规范的方法名称为:
fully-qualified-class-name.method-name( parameter-type-1, parameter-type-2, ... )
对于构造函数,method-name 为 <init>。
下面列举了一些示例:
要排除所有构造函数,请启用“排除”复选框,并添加以下过滤器:
*.<init>(*)
要排除所有包含单个 org.w3c.dom.Element 参数的构造函数,请启用“排除”复选框,并添加以下过滤器:
*.<init>(org.w3c.dom.Element)
要排除所有 Identity Manager 类,请启用“排除”复选框,并添加以下过滤器:
"com.waveset.*" "com.sun.idm.*"
要仅分析自定义代码,请禁用“排除”复选框,并删除初始的 * include 过滤器,然后添加以下过滤器:
"com.yourcompany.*"
最后两个示例目前是等效的,因为这些过滤器仅会应用于自定义类和 Identity Manager 类。
如有必要,可以通过适当修改 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 类,这是因为启用这些类会中断 Profiler 的运行。
例如,会排除工作流、表单和 XPRESS 引擎中的类,否则在分析 Java 和 Identity Manager 对象时,Profiler 将会生成难以理解的快照。
请注意,Java 过滤器将提供比 IDM 对象过滤器更细的过滤粒度。因此,使用 Java 分析会显著增加执行时间的开销,从而使性能分析结果出现巨大的偏差。由于是解释而非编译 Identity Manager 对象,因此分析开销可以忽略不计。因此,举例来说,根本没有理由排除工作流 A 而包含工作流 B,等等。
在运行 Profiler 时,不能修改 Java 过滤器。必须先停止 Profiler 才能更改 Java 过滤器。
“其他”选项卡提供了以下选项:
删除执行时间为 0 的快照节点:
如果希望快照包含所有已执行实体的调用信息(即使其执行时间为零),则需要禁用此选项(默认设置)。
即便是对于没有执行时间的节点,包含其调用次数信息可能也很有用。
启用此选项会删除这些节点,从而您可以关注最相关的性能分析数据。此外,启用此选项可以大大降低 Profiler 快照的大小。
Profiler 启动时自动打开浏览器:
如果希望在启动 Profiler 时自动打开浏览器(指向要进行性能分析的 Identity Manager 实例),请启用此选项(默认设置)。
如果不希望打开浏览器,则禁用此选项。
在快照中包含 Java 源:
启用此选项(默认设置)可以在快照中包含性能分析数据引用的任何 Java 方法的 Java 源。应始终将此设置用于字段中的快照。自定义 Java 相对较小,包含它对于支持工作很有价值。
仅在分析 Identity Manager 并且具有完整的 Identity Manager 源时,才禁用此选项。
在这种情况下,您不希望包含 Identity Manager 源,因为包含它会生成非常大的快照。(有关详细信息,请参见 Profiler 查找和管理源的方式。)