¿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?
- ¿Existe un método para desactivar la función Auto-resize de la aplicación de Gmail en el diseño de un correo electrónico?
- ¿Cómo almacenar archivos en el directorio de antememoria de Android?
- Desarrollo móvil (Android & iOS) principiante necesita orientación
- Android USSD que sim recibe un mensaje ussd o que sim slot recibe un mensaje ussd (teléfono dual sim)
- Error Android Bluetooth LE: Error al registrar la devolución de llamada
- WifiManager.is5GHzBandSupported () mentir?
- JQuery Mobile nativa no trabaja en droid
- Conexión a un puerto bluetooth específico en un dispositivo bluetooth mediante Android
- Selector de Google Drive (JavaScript) no móvil
- ¿Cómo puedo encontrar la ventana virtual / ancho de pantalla con Javascript?
- Bluetooth LAN entre teléfonos inteligentes? ¿Conexiones telefónicas de uno a muchos?
- Desafíos al realizar el desarrollo de aplicaciones móviles con Python
- ¿Cómo crear una interfaz de usuario como el nuevo mercado o Google más?
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.