EmuLabZip logo EmuLabZip

Memoria

Actualizado el · Editar esta página en GitHub

La herramienta Memory muestra adónde va la memoria de la app seleccionada y te deja comparar dos momentos para ver qué creció.

Snapshots#

Haz clic en Take snapshot para registrar un desglose:

AndroidSimulador de iOS
Fuentedumpsys meminfo <package>footprint --json <pid> en el Mac
TotalPSS (proportional set size)Footprint, el número que iOS usa para decidir cuándo terminar una app
CategoríasJava heap, native heap, código, stack, gráficos, private other, sistemaRegiones de VM como MALLOC_SMALL, __DATA, CoreAnimation
DetallesRSS total, swap y recuentos de objetos (vistas, activities, binders, WebViews…)Memoria limpia y recuperable, número de regiones

Toma un snapshot, usa la app (abre y cierra una pantalla varias veces) y toma otro. El segundo snapshot se compara automáticamente con el anterior; elige cualquier otra línea base en el menú Compared with. Las categorías se listan por el tamaño de su cambio, con una flecha y un signo para que la dirección nunca dependa solo del color.

Una categoría que sigue creciendo con acciones repetidas es un buen lugar donde buscar una fuga.

Volcados de heap#

AndroidSimulador de iOS
BotónHeap dump…Memory graph…
Archivo.hprof, escrito con am dumpheap.memgraph, escrito con leaks --outputGraph
Ábrelo conAndroid Studio, Eclipse MAT o PerfettoXcode (File › Open), leaks, heap, vmmap
RequisitoUna app depurable (o una imagen eng/userdebug)Ninguno

En Android, el volcado se escribe en /data/local/tmp, se copia a tu ordenador y se elimina del dispositivo.

EmuLabZip también puede leer el volcado por sí mismo: Find leaks (u Open dump… para un archivo en disco) lista las Activities destruidas y los Fragments eliminados que siguen vivos, la ruta que mantiene a cada uno y los objetos que mantienen vivos más memoria. Consulta Finding leaks.

Desde la línea de comandos#

emulabzip mem com.example.app
emulabzip mem com.example.app --json
emulabzip heapdump com.example.app -o before-login.hprof
emulabzip heapdump com.example.app --analyze
emulabzip heap analyze before-login.hprof