Domanda

Ho bisogno di controllare la mia domanda di perdite di memoria, ho anche bisogno di vedere l'allocazione di memoria della mia candidatura. Ho scaricato e installato l'analizzatore di memoria eclissi, e sembra che il primo passo è quello di aprire un heap dump. Ma che cosa è un heap dump, come posso creare un heap dump. E come esattamente faccio a utilizzare questo software, ho fatto qualche googling, ma non ho potuto trovare tutte le informazioni utili grazie

È stato utile?

Soluzione

Quando si esegue il debug la vostra applicazione, aperto DDMS in Eclipse. Sulla barra degli strumenti è presente un pulsante heap dump che è possibile utilizzare per generare un heap dump per visualizzare in analizzatore di memoria Eclipse. Questo è supportata solo penso che con la 1.6 + 2.0 + o SDK.

Altri suggerimenti

L'heap dump della Dalvik VM ha bisogno di essere convertiti in formato hprof regolare utilizzando lo strumento convertitore hprof-conv.exe nella cartella tools dell'SDK Android. È possibile aprire questa hprof con Eclipse MAT o altri strumenti sono: YourKit http://www.yourkit.com/ e http://www.quest.com/jprobe/

Oltre DDMS è anche possibile creare il hprof da voi APP / code (solo SDK più recenti) tramite Debug.dumpHprofData(...)

Si noti che in DDMS si può vedere il mucchio che la vostra applicazione sta usando. Non mostra il mucchio nativo che le risorse esterne, come bitmap stanno assegnando. Tuttavia, queste risorse devono anche essere presi in considerazione quando si controlla per perdite di memoria. Quando entrambi mucchio nativa e applicazione aggiunge fino a 16 MB / resp. 24MB si otterrà un errore OOM.

È possibile vedere il mucchio nativo che è stato utilizzato (vale a dire da bitmap a vostra applicazione) tramite Debug.getNativHeapAllocatedSize().

Si veda anche http://developer.android.com/guide/ sviluppo / debug / ddms.html # profilazione

Se aiuta, è possibile attivare il profiling su aree locali di codice utilizzando l'API di debug. In questo modo si hanno meno prolissità quando si analizzano le tracce in ad esempio Traceview. Vedere http://macgyverdev.blogspot.com/2011/07/ profiling-android-application-tutorial.html per gli esempi.

E alcune informazioni più dettagliate su come convertire DDMS mucchio discariche in modo da poterli visualizzare in Eclipse Memory Analyzer e trovare gli oggetti che perdono tramite l'attrezzatura albero dominatrice: http://macgyverdev.blogspot.com/2011/11/android-track-down-memory-leaks.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top