无法使用Eclipse Memory Analyzer打开HPROF文件

问题描述 投票:4回答:2

Eclipse Memory Analyzer只提示我这条消息:“无效的HPROF文件头”。

堆栈转储:

    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机器上制作的。

HAT不起作用,IBM HeapAnalyzer是复杂的,但确实有效。

我能做些什么才能让它发挥作用?

java heap dump
2个回答
5
投票

我遇到过同样的问题。添加标志“format = b”解决了问题。显然,Memory Analyzer只能读取二进制文件。


1
投票

如果您正在使用Java服务包装器,那么很可能JVM在完成堆转储之前就已经被杀死了。您可能希望为服务包装器设置一个属性,该属性将使vm有更多时间来完成堆转储。

© www.soinside.com 2019 - 2024. All rights reserved.