¿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.

  • Aplicaciones móviles independientes de la plataforma
  • Titanio api.info nunca muestra nada en la consola
  • Llamada de teléfono móvil o mailto no funciona en absoluto
  • Restringir solicitudes de API solo a mi propia aplicación para móviles
  • Desea almacenar permanentemente dos variables para una aplicación en sistemas operativos móviles
  • IScroll con desplazamiento nativo en un eje
  • SMS raw pdu en Android
  • ¿Cómo detectar móviles (iOS y Android) utilizando JSP / Java?
  • Buenos ejemplos de tours en la aplicación / tutoriales / tutoriales en Android o iPhone
  • Comprobación del resultado de rawQuery de Android
  • JQuery Mobile & PhoneGap deviceReady () no se disparó
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.