Recibo la siguiente excepción al intentar abrir el archivo HPROF (creado por Debug.dumpHprofData
) con 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)
¿Cómo resuelvo esto?
android
memory-leaks
dump
Asahi
fuente
fuente
Respuestas:
El
hprof
archivo que obtienes de Android tiene un formato específico de Android. Debe convertirhprof
la toma de archivos del sistema operativo Android ahprof
formato estándar . Para esto, puede usar lahprof-conv
herramienta que se encuentra enAndroidSDK/tools/hprof-conv
.Por ejemplo:
Y luego abra mat.hprof en Memory Analyzer.
EDITAR: hprof-conv podría estar ubicado
AndroidSDK/platform-tools/
en algunos paquetes.fuente
Debug.dumpHprofData()
se usa, la conversión debe hacerse manualmente.Si está utilizando Eclipse, simplemente cambie lo siguiente:
fuente
hprof-conv
herramienta, simplemente no hizo nada. ¡Así que probé tu método y funciona! Solo debería tener que instalar MAT para eclipsar y ahora funciona perfectamente. graciashprof-conv
Se cambió la ubicación de la herramienta.Ahora está ubicado en
AndroidSDK/platform-tools/hprof-conv
fuente