哪些工具可用于查看内置JVM Profiler的输出?例如,我用以下命令启动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开发人员回复了我的question on an HP ITRC forum,指示heap=dump必须暂时包含在-agentlib选项中,直到修复了HPjmeter中的错误为止。这些信息使HPjmeter再次可行,但是我仍然将问题悬而未决,看看是否有人知道其他任何工具。

    编辑:从HPjmeter 4.0.00版本开始(2009年5月可用),此错误已得到修复。

    最佳答案

    Your Kit Java Profiler能够读取hprof快照(我不确定是否仅用于内存性能分析或CPU)。它不是免费的,但是是迄今为止我使用过的最好的Java Profiler。它以清晰,直观的方式呈现结果,并且在大型数据集上表现良好。该文档也很好。

    07-24 09:47