Estou recebendo a seguinte exceção ao tentar abrir o arquivo HPROF (criado por Debug.dumpHprofData
) com o Memory Analyzer:
java.io.IOException: Unknown HPROF Version (JAVA PROFILE 1.0.3)
at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:124)
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:203)
at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:114)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:143)
at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:123)
at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:56)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Como eu resolvo isso?
android
memory-leaks
dump
Asahi
fonte
fonte
Respostas:
O
hprof
arquivo que você obtém do Android tem um formato específico para o Android. Você deve converter ahprof
captura de arquivo do sistema operacional Android para ohprof
formato padrão . Para isso, você pode usar ahprof-conv
ferramenta localizada emAndroidSDK/tools/hprof-conv
.Por exemplo:
E abra o mat.hprof no Memory Analyzer.
EDIT: hprof-conv pode estar localizado
AndroidSDK/platform-tools/
em alguns pacotes.fonte
Debug.dumpHprofData()
é usada, a conversão deve ser feita manualmente.Se você estiver usando o Eclipse, basta alterar o seguinte:
fonte
hprof-conv
ferramenta, simplesmente não fazia nada. Então tentei o seu método e funciona! Eu só deveria ter que instalar o MAT para eclipsar e agora funciona perfeitamente. obrigadohprof-conv
a localização da ferramenta foi alterada.Agora está localizado em
AndroidSDK/platform-tools/hprof-conv
fonte