清单 4. runjprof:calltree
> cd /d c:\ibmperf\bin
> setrunenv
> java -Xrunjprof:callflow,raw_cycles,start -jar bookstore.jar
> 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 的编辑器