Android = = > analyse de mémoire = = > Analyseur de mémoire Eclipse?

je dois vérifier mon application pour les fuites de mémoire, je dois aussi voir l'allocation de mémoire de mon application. J'ai téléchargé et installé l'analyseur de mémoire eclipse, et on dirait que la première étape est d'ouvrir une décharge. Mais qu'est ce qu'un tas de vidage, comment puis-je créer un tas de vidage. Et comment exactement vais-je utiliser ce logiciel, j'ai fait quelques recherches sur Google mais je n'ai pas pu trouver d'informations utiles merci

46
demandé sur aryaxt 2010-06-24 22:04:34

3 réponses

lorsque vous déboguez votre application, ouvrez DDMS dans Eclipse. Sur la barre d'outils il y a un bouton tas dump que vous pouvez utiliser pour générer un tas dump à voir dans L'analyseur de mémoire Eclipse. Ceci n'est supporté que je pense avec le 1.6+ ou 2.0+ SDK.

40
répondu Robby Pond 2010-06-24 18:25:24

le dump tas de la VM de dalvik doit être converti au format HPROF régulier en utilisant le HPROF-conv.outil de convertisseur exe dans le répertoire des outils du SDK Android. Vous pouvez ouvrir ce HPROF avec le tapis Eclipse ou d'autres outils sont: Votrekit http://www.yourkit.com / et JProbe http://www.quest.com/jprobe /

à côté du DDMS vous pouvez également créer le HPROF à partir de votre app / code (seulement les SDK plus récents) via Debug.dumpHprofData(...)

notez que dans le DDMS vous pouvez voir le tas que votre application utilise. Cela ne montre pas au tas natif que des ressources externes telles que bitmaps sont affectées. Néanmoins, ces ressources doivent également être pris en compte lors de la vérification des fuites de mémoire. Lorsque natif et app heap totalisent tous les deux 16MB / resp. 24MB vous obtiendrez une erreur OOM.

vous pouvez voir le tas natif qui a été utilisé (i.e. par bitmaps dans votre application) via Debug.getNativHeapAllocatedSize() .

10
répondu Mathias Conradt 2010-06-24 19:30:53

Voir aussi http://developer.android.com/guide/developing/debugging/ddms.html#profiling

si cela aide, vous pouvez activer le profilage sur les zones locales de code en utilisant L'API de débogage. De cette façon, vous avez moins de verbosité lors de l'analyse des traces dans traceview par exemple. Voir http://macgyverdev.blogspot.com/2011/07/profiling-android-application-tutorial.html par exemple.

et un peu plus informations détaillées sur la façon de convertir DDMS tas dumps afin que vous puissiez les voir dans L'Analyseur de mémoire Eclipse et trouver vos objets qui fuient via l'arbre dominator tooling: http://macgyverdev.blogspot.com/2011/11/android-track-down-memory-leaks.html

3
répondu Johan Norén 2011-11-05 10:46:41