使用TPTP对Eclipse插件进行性能剖析和调优 - 编程入门网
点击上面的“Add” 按钮增加一个新的过滤器,取名为 MyShop。点击下面的 “Add” 按钮增加过滤规则。过滤器支持通配符。上图中我们的过滤器规则为分 析 以“net.faquir” 开头的包中的所有方法并忽略其他任何代码中的任何方法 。 点击 “Next” 按钮进行下一步配置。因为我们需要进行性能分析的程序是 Eclipse 插件程序,在我们的视图被调用之前进行分析数据的收集是没有任何意 义的。所以我们可以取消“在程序启动时自动开始监控”的选项以便到执行我们 需要进行性能分析的时候再打开这个数据收集选项以排除不必要的干扰数据。 图 7. 设置启动选项 完成之后选择“Finish”回到主配置窗口,然后按“OK”以执行程序。 可以看到,此阶段监控服务的状态是暂停的: 图 8. 监视器运行状态 收集运行时数据 当主程序完全运行起来后,选择我们的MyShop 视图并将其调用起来。在我们 做下一步操作前,点击 “开始”按钮 ( 参见图 8) 以开启监视器的数据收集。 可以看到,此时 Profilling Monitor 视图中的运行状态已由暂停改为运行 : 图 9. 开始数据收集 接着,进行我们的操作。选择 “browse” 按钮并选择存放我们产品信息文 件的目录。产品信息文件可在本文附件中找到。点击 OK 后,可以看到,如图 2 所示,产品信息已经从文件中获取出来了。 操作完成后,我们也获得了我们需要的数据,可以将需要分析的程序关闭, 回到前面的Profilling Monitor 视图中进行具体的数据分析工作。 使用TPTP对Eclipse插件进行性能剖析和调优(6)时间:2011-06-16 IBM 张琦关于离线数据分析 实际上,在被分析程序运行的时候,这些数据的分析工作就可以开始进行了 。但是进行在线分析会导致被测试程序运行缓慢而且影响分析效果。所以如果可 能,最好是把数据收集下来后关闭被测试程序进行离线数据分析。 分析程序调用关系 使用 TPTP 对运行时数据进行分析,其中一个非常有用的功能就是根据运行 时数据分析对象之间的调用关系。TPTP 提供 UML 序列图的查看方式。这种方式 的分析对刚接手一个不熟悉的程序开发时尤其有用。 回到我们的例子中,当分析程序运行后,就会在 Profilling Monitor 视图 中生成相应的报告。如图所示,选择以 UML2 Class Interactions 的方式打开 分析报告。 图 10. 以 UML2 Class Interactions 的方式打开分析报告 在 UML 序列图的分析中,不仅可以看到类之间的调用关系,其调用过程中的 性能瓶颈也会被标记出来。 图 11. 以 UML 序列图展示类之间调用关系 使用TPTP对Eclipse插件进行性能剖析和调优(7)时间:2011-06-16 IBM 张琦分析性能瓶颈 可以使用 Execution Statistics 视图来分析程序中各个方法的运行时间。 打开该视图的方式是,数据收集进程上点右键,选择以 Execution Statistics 方式打开。 在该视图中,显示了所有调用到的方法及其运行时间。运行时间有多种表示 方法。最常用到的就是“cumulative time”。该时间表示了这个方法调用的总 耗时,其中包含其调用其他方法的时间。 图 12. 运行统计视图 我们 MyShop 插件的运行结果如上图所示。可以看到,getProductDir 方法 耗时最长。而该方法的作用是打开一个文件选择对话框,等待用户的选择,等选 择完成后再关闭对话框。因此其时中包含了等待用户选择的部分。这当然应该在 我们的性能分析中排除在外。除此之外耗费时间最长的是 parseContent 方法。 该方法用于从包含产品信息的XML 文件中获取真正的产品信息数据。双击该方法 查看该方法调用的详细数据。 图 13. 方法调用详细数据 需要注意的是,在下面的Selected meth |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |