为实现本教程的教学目的,请指定以下 Profiler 选项:
在“模式”选项卡上,选择“Java 和 IDM 对象”以分析表单、Java、规则、工作流及 XPRESS 对象。
选择“Java 过滤器”选项卡。
使用以下步骤禁用除自定义 Java 类(本例中为 org.example.ProfilerTutorialExample)以外的所有 Identity Manager Java 类:
单击“确定”以运行 Profiler。
如果您是第一次对某个项目运行 Profiler,或在近期执行了“清理项目”操作,则 Profiler 将需要几分钟时间来完成处理。
Profiler 完成处理后,系统会提示您登录。
输入密码 configurator,选中“记住密码”复选框,然后单击“确定”以继续。
当显示 Identity Manager 窗口时,请登录。
通常,您应以其他的用户身份登录到 Identity Manager,而不是再以 configurator 身份登录。您已经以 configurator 身份登录到 Profiler,Identity Manager 会话池仅允许一个用户具有一个条目。使用多个条目会导致会话池中断,并且可能造成性能分析结果出现偏差,出现更细化的性能问题。
但是,对于此简单示例,会话池没有出现任何问题,因此您可以使用 configurator/configurator 登录。
在 Identity Manager 中,选择“服务器任务”->“运行任务”,然后单击 "ProfilerTutorialWorkflow1"。
此教程可能需要一些时间进行响应。
尽管您现在可以拍摄快照,但您最好先重置结果、运行 Profiler、再次运行 Profiler,然后再拍摄快照。
最佳的做法是在拍摄快照之前运行几次 Profiler,以确保预备好所有缓存、编译好所有 JSP 等等。
通过运行几次 Profiler,您可以重点解决实际的性能问题。不适合应用此做法的唯一一种例外情况是:存在自动填充缓存方面的问题。
Identity Manager IDE 会下载您的快照,并在窗口的右侧显示结果。
此区域为“调用树”视图。在“调用树”的顶部,可以看到 /idm/task/taskLaunch.jsp 及其“时间”列中列出的时间。该时间应该表示整个请求耗时六秒以上。
展开 /idm/task/taskLaunch.jsp 节点,会看到 ProfilerTutorialWorkflow1 耗时六秒。
展开 ProfilerTutorialWorkflow1 节点。请注意,activity2 耗时四秒,activity1 耗时两秒。
展开 activity2。
请注意,action1 耗时两秒,action2 耗时两秒。
展开 action1,请注意,<invoke> 也耗时两秒。
双击 <invoke> 以打开 ProfilerTutorialWorkflow1.xml,并突出显示以下行:
<invoke name=’example’ class=’org.example.ProfilerTutorialExample’/> |
您应看到调用 ProfilerTutorialExample 方法耗时两秒。
实际上,您浏览的是快照中捕获的 XML 源,而不是项目中的源。快照是完全自包含的。(有关详细信息,请参见 Profiler 查找和管理源的方式。)
选择 "CPU:<date>< time>" 选项卡以返回到您的快照。
展开 <invoke> 节点,请注意,Profiler 在 Java ProfilerTutorialExample.example() 方法中耗时两秒。
双击该方法的名称以打开 ProfilerTutorialExample.java 源,并突出显示以下行:
Thread.sleep(2000); |
存在问题!此方法包含一个两秒的线程休眠。
如果返回到“调用树”,则可以看到所有耗时两秒的路径都通向此方法。(您应看到三个路径,共耗时六秒。)
选择“热点”选项卡(位于“调用树”区域的底部)以打开“热点”视图。请注意,ProfilerTutorialExample.example() 的自用时间总计为六秒。
(有关“热点”的详细信息,请参见使用“快照视图”。)
右键单击 ProfilerTutorialExample.example(),然后从弹出式菜单中选择“显示反向跟踪”。
将在该区域的底部显示一个新的“反向跟踪”选项卡。
展开“反向跟踪”选项卡上的 ProfilerTutorialExample.example() 节点,会看到从三个位置调用了此方法,并且从每个位置调用此方法时都耗时两秒。
(有关“反向跟踪”的详细信息,请参见使用“快照视图”。)
单击“在项目中保存快照”图标以保存您的快照,然后将其关闭。
如果查看 "IDM Profiler" 选项卡上的“已保存的快照”部分,则会看到快照。(您可能需要向下滚动才能看到。)
选择已保存的快照,然后单击“打开”以重新打开该快照。
可以使用“另存为”按钮在外部位置保存您的快照,并可使用“加载”按钮加载位于项目外部的快照。
再次关闭该快照。