有哪些工具可用于查看内置JVM分析器的输出?例如,我正在启动我的JVM:
-agentlib:hprof=cpu=times,thread=y,cutoff=0,format=a,file=someFile.hprof.txt
这将以hprof("JAVA PROFILE 1.0.1")格式生成输出.
过去,我已经成功使用HPjmeter以合理的方式查看这些输出文件.但是,无论出于何种原因,使用当前版本的Sun JVM生成的文件都无法加载到当前版本的HPjmeter中:
java.lang.NullPointerException at com.hp.jmeter.f.jb.a(Unknown Source) at com.hp.jmeter.f.a.a(Unknown Source) at com.hp.c.a.j.z.run(Unknown Source) Exception in thread "HPeprofDataFileReaderThread" java.lang.AssertionError: null pointer exception from loader at com.hp.jmeter.f.a.a(Unknown Source) at com.hp.c.a.j.z.run(Unknown Source)
(为什么他们会混淆免费产品的字节码?!)
由此产生两个问题:
有谁知道HPjmeter错误的原因?(编辑:是的 - 见下文)
还有哪些其他工具可以读取hprof文件?为什么Sun没有(有)?
我知道Eclipse TPTP和其他工具可以动态监视JVMTI数据,但我需要一个可以处理生成的hprof文件的解决方案,因为部署的机器只安装了JRE(而不是JDK).
编辑:一个非常有用的HPjmeter开发人员在HP ITRC论坛上回复了我的问题,表明heap=dump
需要-agentlib
暂时包含在选项中,直到HPjmeter中的错误得到修复.这些信息使HPjmeter再次可行,但我仍然会问这个问题是否有人知道任何其他工具.
编辑:从HPjmeter 4.0.00版(2009年5月可用)开始修复此错误.
您的Kit Java Profiler能够读取hprof快照(我不确定是仅用于内存分析还是用于CPU).它不是免费的,但是迄今为止我用过的最好的java分析器.它以清晰,直观的方式呈现结果,并在大型数据集上表现良好.文档也很好.