usage studio leaks java android memory-management garbage-collection dalvik

java - studio - Cómo minimizar las ocurrencias GC_FOR_ALLOC?



memory leaks android studio (1)

Mi aplicación está causando que estos temidos GC_FOR_ALLOC aparezcan muchas veces en ubicaciones específicas (métodos):

12-29 22:20:30.229: D/dalvikvm(10592): GC_FOR_ALLOC freed 1105K, 14% free 10933K/12615K, paused 33ms, total 34ms 12-29 22:20:30.260: D/dalvikvm(10592): GC_FOR_ALLOC freed 337K, 13% free 11055K/12615K, paused 25ms, total 26ms 12-29 22:20:30.288: D/dalvikvm(10592): GC_FOR_ALLOC freed 278K, 14% free 10951K/12615K, paused 24ms, total 24ms 12-29 22:20:30.495: D/dalvikvm(10592): GC_CONCURRENT freed 633K, 11% free 11317K/12615K, paused 16ms+3ms, total 79ms 12-29 22:20:30.495: D/dalvikvm(10592): WAIT_FOR_CONCURRENT_GC blocked 16ms 12-29 22:20:30.499: D/dalvikvm(10592): WAIT_FOR_CONCURRENT_GC blocked 15ms

Para mí está claro que estoy haciendo algo mal con respecto a la administración de la memoria (sí, la recolección de basura es excelente, pero aún así no me libera de cierta responsabilidad de saber cuándo y cómo asignarla).

¿Puede recomendarme un enfoque de solución de problemas o una técnica que pueda llevarme a las líneas ofensivas del código y las posibles soluciones?


Android DDMS, que es parte de las herramientas de desarrollo de Android en eclipse, tiene herramientas muy útiles que puede usar para el seguimiento de asignación de perfiles y memoria.

La siguiente captura de pantalla destaca algunas de estas herramientas (todas en DDMS), algunas herramientas deben activarse haciendo clic en el botón correspondiente en el panel izquierdo (resaltado en rojo) y luego puede ver los valores (algunos con gráficos) en el panel derecho seleccionando la pestaña que desea ver (resaltada en azul)

Heap and Allocation Tracker será muy útil en su caso.