Monday, December 29, 2008

使用AIX自带的tprof进行性能剖析

AIX上自带一个很好的性能调优工具tprof,这个和Performance Inspector里面的run.tprof功能完全一样。不过在AIX上我们使用系统自带的更为方便,何况Performance Inspector的AIX剖析工具已经处于deprecated状态了。

使用AIX的tprof分析Java应用程序的过程非常简单:
tprof -j -A -X -I -r trace3 -x java -agentlib:jpa64=instructions=1 MyClass
在上面的例子中,我们使用了几个tprof的几个参数:
  • -j: 指明要分析Java程序
  • -A: 打开自动离线模式,在这种模式下,程序运行时仅进行trace而不进行分析。
  • -X: 用XML格式输出
  • -I: 开启二进制指令级别剖析
  • -r: 指定输出文件的名称
  • -x: 指定要执行的程序,必须是最后一个参数

然后,在运行Java程序时,我们需要加上-agentlib:jpa或者-agentlib:jpa64选项。选择哪个要看JDK是32位还是64位的。最后的结果可以方便的用VPA观看汇编指令对性能的影响了。

最后,在我测试的时候,似乎不能使用tprof的-N选项(用于打开源代码级别的调优)。否则tprof会在生成结果之前僵死。目前还不知道原因。

0 comments: