web-dev-qa-db-fra.com

Comment analyser la mémoire avec Android studio

Récemment basculez vers Android studio de Eclipse. Comment vérifier l’allocation de mémoire et la mémoire de l’application dans Android studio?? Dans Eclipse, nous avons MAT, y at-il quelque chose dans le studio vérifier tas dump, fichier hprof?

72
Prachi

Je vais l'expliquer de manière simple avec les étapes suivantes:

  1. Tout d'abord, vous devez installer [~ # ~] mat [~ # ~] ( télécharger ) ou utiliser:

    tonneau de bière installer memoryanalyzer

  2. Dans Android Studio ouvert Android Moniteur de périphérique ou DDMS.

  3. Sélectionnez votre processus "com.example.etc .."

  4. Cliquez sur Mettre à jour le tas au-dessus de la liste de processus.

  5. Dans le panneau de droite, sélectionnez l'onglet Tas.

  6. Cliquez sur Cause GC.

  7. Cliquez sur Dump HPROF file au-dessus de la liste de processus.

  8. Lorsque nous avons téléchargé le fichier HPROF, nous devons ouvrir le terminal et exécuter cette commande pour générer le fichier et l’ouvrir avec MAT.

  9. Ouvrez le terminal et lancez cette commande

./hprof-conv path/file.hprof exitPath/heap -on converti.hprof

La commande "hprof-conv" se trouve dans le dossier platform-tools du sdk.

  1. Et ready et MAT peuvent ouvrir et ouvrir le fichier converti (heap-conversion.hprof).
119
TeRRo

Il y a une autre façon de voir les allocations:

Start and stop allocation tracking

See the result

39
cVoronin

Moniteur Android -> Moniteurs (à côté de logcat) -> Mémoire -> dump Java

enter image description here

13
Jay

Je suis d'accord avec la réponse ci-dessus sauf les étapes ci-dessous

  1. Cliquez sur Mettre à jour le tas au-dessus de la liste de processus.

  2. Dans le panneau de droite, sélectionnez l'onglet Tas.

  3. Cliquez sur Cause GC.

Ils ne sont pas nécessaires. Il suffit de sélectionner votre application/processus dans DDMS, puis de cliquer sur l'option de profil HPROF. Après cela, suivez les étapes exactement comme ci-dessus.

3
Akshay

On peut aussi faire ce qui suit pour avoir plus d’options,

  1. Aller à Outils
  2. Puis pour Android
  3. enfin à Android Device Monitor
3
Arade
  1. Première installation MAT , pour pouvoir l'utiliser dans Android Studio, vous devez choisir Stand-alone Eclipse RCP Applications Pour installer , qui peut être utilisé comme outil indépendant

  2. Dans Android Studio, exécutez votre application

  3. Dans le panneau inférieur, sélectionnez 6:Android, Puis sélectionnez Memory Monitor

  4. Cliquez sur Dump Java Heap

  5. Passez à l'onglet Captures (dans le panneau de gauche), vous pouvez trouver le fichier .hprof Dans le dossier Heap Snapshot.

  6. Pour ouvrir le fichier .hprof Dans MAT, vous devez convertir le format: faites un clic gauche sur le fichier .hprof, Puis choisissez Export to standard .hprof

  7. Ouvrez MAT, puis ouvrez le fichier .hprof Que vous avez converti au format

3
Icy Tsai

Notez que dans le dernier Android Studio (1.3+), la capture de segment de mémoire (Android hprof) a été déplacée vers le sous-onglet Moniteur de la mémoire sous l'onglet Android ( comme la première image dans la réponse de cVoronin).

Une fois la capture terminée, il sera automatiquement enregistré dans le répertoire "captures" de votre projet (vous pouvez renommer le fichier ultérieurement si vous le souhaitez). Le fichier hprof sera automatiquement ouvert dans le nouveau visualiseur hprof dans la version 1.3+.

Bien sûr, vous avez toujours la possibilité de le convertir au format standard hprof et de le visualiser dans MAT. Cliquez simplement avec le bouton droit de la souris sur le fichier dans le navigateur de captures (sous le navigateur de projet) et sélectionnez Convert ici. Et comme d'habitude, vous perdriez certaines informations supplémentaires spécifiques à Android en n'utilisant pas le nouveau visualiseur, car hprof standard ne les prend pas en charge.

2
dunno

Je suis passé d'Eclipse à Android Studio, mais j'utilise toujours MAT dans Eclipse, avec le plugin DDMS. C'est tellement plus simple.

2
Christine

Je sais que la question est assez ancienne, mais Android Studio 3 a maintenant un profileur intégré.

Voir la documentation ici: Android Profiler in Android Studio 3.

1
dankito