¿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?
- No se puede implementar la aplicación mediante Device Chooser después de actualizar Android Studio a 1.4
- Firefox móvil ignora completamente Viewport
- ¿Qué UI usar para Cordova Android / iPhone desarrollo de aplicaciones
- ¿Qué es un buen libre / open source multiplataforma plataforma de desarrollo de aplicaciones móviles
- ¿Por qué mi acceso desde mi móvil a mi red informática no funciona?
- Determinar y vincular eventos de clic o "toque"
- ¿Qué no puedes hacer con una aplicación móvil HTML5 / Javascript que puedes hacer con una aplicación móvil nativa?
- Actualizar el contenido de las pestañas de Android Sherlock
- Funcionalidad de las pantallas táctiles y la entrada del usuario
- Cómo saber si el usuario de Android vino de la aplicación de pantalla de inicio
- Aplicación de copia de seguridad de Cordova mediante Android Backup Service
- Portales de aplicaciones móviles centralizados y descentralizados
- ¿Qué tan bien el conocimiento de J2ME se generaliza a otras plataformas móviles?
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.