Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t使用Eclipse内存分析器打开HPROF文件_Java_Heap_Dump - Fatal编程技术网

Java Can';t使用Eclipse内存分析器打开HPROF文件

Java Can';t使用Eclipse内存分析器打开HPROF文件,java,heap,dump,Java,Heap,Dump,仅提示我以下消息:“无效的文件头” 堆栈转储: java.io.IOException: Invalid HPROF file header. at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:135) at org.eclipse.mat.hprof.Pass1Parser.read(Pass1Parser.java:69) at org.eclipse.mat.hpr

仅提示我以下消息:“无效的文件头”

堆栈转储:

    java.io.IOException: Invalid HPROF file header.
    at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:135)
    at org.eclipse.mat.hprof.Pass1Parser.read(Pass1Parser.java:69)
    at org.eclipse.mat.hprof.HprofIndexBuilder.fill(HprofIndexBuilder.java:65)
    at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:184)
    at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:102)
    at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:114)
    at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:94)
    at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:54)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
HPROF文件是在Linux机器上生成的

不起作用,问题也很复杂,但确实起作用了


我该怎么做才能让它工作?

如果您使用的是java服务包装器,那么JVM很可能在完成堆转储的编写之前就被杀死了。您可能希望为服务包装器设置一个属性,以便让vm有更多的时间完成堆转储。

我也遇到了同样的问题。添加标志“format=b”修复了该问题。显然,内存分析器只能读取二进制文件。

转储是使用不兼容的JVM进行的吗?如果jhat不起作用,我会认为dump.Heapdump格式有问题?Binary vs text.AM有同样的问题,你在哪里添加了“format=b”?