¿Cuál es el objetivo de establecer el tamaño mínimo del montón en una aplicación para Android?

En la aplicación Google Calendar de Android OS, encontrarás esta línea en el método onCreate de CalendarActivity .

// Eliminate extra GCs during startup by setting the initial heap size to 4MB. VMRuntime.getRuntime().setMinimumHeapSize(INITIAL_HEAP_SIZE) 

¿Puede alguien explicar por qué establecerlo en 4MB eliminará GCs?

Una JVM normalmente comienza asignando un montón relativamente pequeño. Luego, después de cada GC ejecutar comprueba para ver cuánta memoria de montón libre hay. Si la proporción entre el montón libre y el montón total es demasiado pequeña, la JVM añadirá más memoria al montón (hasta el tamaño de montón máximo configurado).

Un segundo hecho relevante es que GC funciona más eficientemente cuando hay un montón de memoria para reclamar. Siempre que no se encuentre con los límites globales de recursos del sistema (por ejemplo, activando la paginación o el intercambio), obtendrá un mejor rendimiento de la aplicación ejecutándose con un montón grande que uno pequeño.

Supongamos que el autor de la aplicación sabe que la aplicación necesita una cantidad determinada de montón (por ejemplo, 4Mb) para funcionar cómodamente. Al establecer ese tamaño como el tamaño mínimo del montón significa que la JVM no necesita ejecutar el GC cuando el montón se llena en (por ejemplo) 1Mb, 2Mb y 3Mb. Como resultado, la JVM ejecuta el recolector de basura menos veces durante el inicio de la aplicación y la ejecución normal, la aplicación se inicia más rápido y el usuario ve menos pausas GC.

  • Trabajadores web en navegadores móviles
  • Algunos dispositivos Android extremadamente lentos al representar elementos de lienzo
  • ¿Cómo puedo desarrollar aplicaciones móviles usando HTML5?
  • okhttp carga de imagen multipart con nombre de archivo
  • Detectar si el dispositivo Android es un teléfono o una tableta con javascript
  • Cómo realizar una cola persistente en Android
  • Cargador de clases personalizado para android?
  • Trabajar alrededor de QString móvil error
  • JavaScript cómo comprobar el agente de usuario para Mobile / Tablet
  • Selector de Google Drive (JavaScript) no móvil
  • Notificación de empuje en Web móvil
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.