Android FinalizerReference con 7mb de RAM

Sé que hay 2-3 tema sobre esto, hubo problemas con FinalizerReference , pero todavía no se explica bien. Tengo una pregunta sobre esta clase y cómo funcionan las cosas en ella.

No importa lo que hago en mi aplicación, FinalizerReference siempre mantener 5-10 RAM para sí mismo, y mi pregunta es:

¿Es este un comportamiento normal del que no tengo que preocuparme?

Como sé, los objetos Java se liberan, pero algunos tipos de "punteros" permanecen en la memoria y se limpian con la siguiente GC (así como los objetos normales que se limpian con GC, sin hacer referencia a él).

Para mí, esto es un poco incorrecto, porque si tengo ~ 64 MB de RAM para usar con mi aplicación y 10 MB se desperdician – debe haber un problema.

Lo revisé todo, eliminé todas las fugas que tenía y en la actualidad mi aplicación se queda en 18 ~ mb RAM (7 RAM – gráficos, 2 RAM – Objetos). El resto – FinalizerReference ; /

Aquí hay una captura de pantalla de AppHeap: Introduzca aquí la descripción de la imagen

Aquí hay una pantalla de sus instancias:

Introduzca aquí la descripción de la imagen

Y aquí está mi monitor de memoria (permanece en este formulario durante 30 minutos):

Introduzca aquí la descripción de la imagen

Además, en el panel 'Instancias', hay 50 entradas incluyendo ~ 5 de mi código y bibliotecas que uso. El resto es de Android: InputManagers, Parcels, Proxies, etc.

Editar

Esto ocurre en el Galaxy S5. En Android Emulator obtengo ~ 2MB de FinalizerReference

Tuve el mismo problema con FinalizerReference , sólo en Nexus 5.

Aquí hay una captura de pantalla de heap dump de Android Studio. Introduzca aquí la descripción de la imagen

Después de algunas investigaciones, he encontrado este comentario, donde dijo que esto podría ser causado por el sistema.

Además, he utilizado la herramienta de análisis de memoria de Eclipse (MAT) , que demostró que tantos objetos FinalizerReference pertenecen a System.

Y, no ocupa tanto recuerdo como mostró el volcado de Android Studio.

Introduzca aquí la descripción de la imagen

No solucioné el problema, pero recibí un consejo de que debía revisar un proyecto vacío.

Intentado con:

  • Android Studio Windows x32
  • Android Studio Windows x64
  • IntelliJIDEA x32
  • IntelliJIDEA x64

Todo esto hace que FinalizerReference mantenga 5-10 mb de RAM para sí mismo, en proyectos vacíos y no vacíos.

Simplemente ignore el problema y siga escribiendo código.

  • Android OutOfMemory pero con memoria de sobra
  • Llamar procrank no funciona en dispositivos reales
  • Consulta sobre "dumpsys meminfo" en android
  • ¿Por qué se recomienda no retener el fragmento con la interfaz de usuario?
  • No existe el directorio de caché
  • Posible alternativa a las clases internas estáticas para evitar fugas de memoria en android / java?
  • Android Studio Libgdx Problemas de memoria
  • ¿Puedo obtener la cantidad de memoria que queda para mi programa?
  • ¿Hay una manera de compactar memoria en android para bajar la marca de agua alta?
  • Android NDK: Dalvik Heap y Native Heap - Cómo separar entre los dos
  • DialogFragment pérdida de memoria
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.