快速业务通道

洞悉Java应用性能瓶颈的利器:Visual Performance Analyzer - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
okstore。 清单 4. runjprof:calltree

> cd /d c:\ibmperf\bin > setrunenv > java -Xrunjprof:callflow,raw_cycles,start -jar bookstore.jar

然后,打开图书索引文件。

文件读取结束后,关闭 bookstore 小程序。

在当前目录生成了一个 log-rt.xxx文件。将这个文件重命名为 log-rt.xxx.jprof,Call Tree Analyzer 就可以打开这个 Call Tree 文件。

分析采样结果

使用 VPA 打开采样数据文件,VPA 会根据性能数据的文件类型,自动打开相应的性能分析工具。VPA 提供了大量图型的和文字的视图,帮助用户从不同角度分析性能采样。

分析抽样结果

使用 Profile Analyzer 分析 Java 程序的性能问题时,编辑器、Source Code 视图和 Java Hierarchy 视图是比较常用的控件。

编辑器可以帮助用户找到 Ticks 最多的方法。如图 2,tprof_e.out 打开后,编辑器按照"Process > Module"或者"Process > Thread >Module"等不同分层模式以树状结构列出了采样到的进程、 线程和模块。JITCODE 模块是 Java 进程中 Ticks 最多的模块,而 BestAuthor$1.valueChanged 方法是 JITCODE 模块中 Ticks 最多的方法。

图 2. Profile Analyzer 的编辑器

洞悉Java应用性能瓶颈的利器:Visual Performance Analyzer(5)

时间:2011-10-16 IBM 陈沁悦

Source Code 视图可以帮助用户找到 Ticks 最多的代码行。在编辑器中双击方法 BestAuthor$1.valueChanged,VPA 会弹出对话框询问这个方法相应的源文件。如图 3,为方法 BestAuthor$1.valueChanged 指定源文件后,通过 Source Code 视图,可以找到 Ticks 最多的代码行。 这样的代码行很有可能是程序的性能瓶颈。

图 3. Source Code 视图

通过"Java Hierarchy"视图,用户可以按照 Java 方法所属的包和类逐层浏览这些被采集到的 Java 方法。如图 4,Java Hierarchy 视图的右侧表格中列出了包 bookstore.ui 下所有被采样到的方法。

图 4. Java Hierarchy 视图

洞悉Java应用性能瓶颈的利器:Visual Performance Analyzer(6)

时间:2011-10-16 IBM 陈沁悦

分析方法调用树

Call Tree Analyzer 提供了编辑器、Method Overview 视图、Call Stack 视图等控件。

如图 5,编辑器以方法调用树和执行图的方式来展现 JProf 文件。

图 5. 方法调用树和执行图

"Method Overview"视图列出了方法调用树中所有的方法。如图 6,点击 RAW_CYCLES 列,"Method Overview"按照方法自身消耗时间长短对方法列表进行排序。方法自身消耗时间很长的方法很有可能是性 能瓶颈。

图 6. Method Overview 视图

在"Method Overview"视图中,双击 BookReader.startElement 方法,Call Stack 视图会显示 BookReader.startElement 方法的调用堆栈。通过图 7 中的调用堆栈,用户可以了解到 BookReader.startElement 方法是怎样被调用的。

图 7. Call Stack 视图

洞悉Java应用性能瓶颈的利器:Visual Performance Analyzer(7)

时间:2011-10-16 IBM 陈沁悦

在"Call Stack"视图中,双击 BookReader.startElement 方法,可以在 Call Tree 中定位到这个方 法。如图 8,用户通过浏览 Call Tree,可以更清楚地了解 BookReader.startElement 方法的上下文。

图 8. 在 Call Tree 中定位 BookReader.startElement 方法,

 

下载

描述 名字 大小 下载方法
本文用到的小程序 bookstore bookstore.jar 3412KB HTTP
本文用到的采样文件 (tprof_e.out 和 log-rt.1_1364.jprof) profiles.zip 407KB HTTP

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号