相关疑难解决方法(0)

如何分析.hprof文件?

我有一个使用以下标志运行的生产服务器: - XX:+ HeapDumpOnOutOfMemoryError

昨晚它在我们的服务器遇到堆错误时生成了一个java-38942.hprof文件.事实证明,系统的开发人员知道标志,但无法从中获取任何有用的信息.

有任何想法吗?

java heap profiling

213
推荐指数
7
解决办法
29万
查看次数

类似HPjmeter的图形工具,用于查看-agentlib:hprof profiling输出

有哪些工具可用于查看内置JVM分析器的输出?例如,我正在启动我的JVM:

-agentlib:hprof=cpu=times,thread=y,cutoff=0,format=a,file=someFile.hprof.txt
Run Code Online (Sandbox Code Playgroud)

这将以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)
Run Code Online (Sandbox Code Playgroud)

(为什么他们会混淆免费产品的字节码?!)

由此产生两个问题:

  1. 有谁知道HPjmeter错误的原因?(编辑:是的 - 见下文)
  2. 还有哪些其他工具可以读取hprof文件?为什么Sun没有(有)?

我知道Eclipse TPTP和其他工具可以动态监视JVMTI数据,但我需要一个可以处理生成的hprof文件的解决方案,因为部署的机器只安装了JRE(而不是JDK).

编辑:一个非常有用的HPjmeter开发人员在HP ITRC论坛上回复了我的问题,表明heap=dump需要-agentlib暂时包含在选项中,直到HPjmeter中的错误得到修复.这些信息使HPjmeter再次可行,但我仍然会问这个问题是否有人知道任何其他工具.

编辑:从HPjmeter 4.0.00版(2009年5月可用)开始修复此错误.

java profiling hprof

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×2

profiling ×2

heap ×1

hprof ×1