Saya mendapatkan pengecualian berikut saat mencoba membuka file HPROF (dibuat oleh Debug.dumpHprofData
) dengan 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)
Bagaimana cara mengatasi ini?
android
memory-leaks
dump
Asahi
sumber
sumber
Jawaban:
The
hprof
file yang Anda dapatkan dari Android memiliki format khusus android. Anda harus mengonversihprof
file yang diambil dari OS Android ke dalamhprof
format standar . Untuk ini, Anda dapat menggunakanhprof-conv
alat yang terletak diAndroidSDK/tools/hprof-conv
.Sebagai contoh:
Dan kemudian buka mat.hprof di Memory Analyzer.
EDIT: hprof-conv mungkin terletak di
AndroidSDK/platform-tools/
dalam beberapa bundel.sumber
Debug.dumpHprofData()
digunakan konversi harus dilakukan secara manual.Jika Anda menggunakan Eclipse, ubah saja berikut ini:
sumber
hprof-conv
alat, itu tidak apa-apa. Jadi coba metode Anda dan berhasil! Saya hanya harus menginstal MAT ke gerhana dan sekarang berfungsi dengan sempurna. terima kasihhprof-conv
lokasi alat diubah.Sekarang terletak di
AndroidSDK/platform-tools/hprof-conv
sumber