Esto es normal, no te preocupes. JVM adquiere memoria cuando necesita ejecutar alguna lógica compleja. Cuando java termine de procesar las tareas, la JVM seguirá manteniendo esa memoria como un espacio reservado y no se devolverá al sistema operativo. Esta arquitectura ayuda en el rendimiento porque JMV no tiene que volver a solicitar la misma memoria del sistema operativo subyacente. Seguirá estando dentro del rango que defina en el parámetro -Xmx JVM.
Desafortunadamente, esta es una de las áreas grises de JVM; realmente no tienes mucho control sobre cómo OS y JVM comparten memoria entre sí. Piense en JVM como un SO virtual que requiere algo de memoria para ejecutarse. Tanto su sistema operativo principal como la VM tienen hambre de recursos y desean conservar la mayor cantidad de memoria posible de los recursos adquiridos. Solicitar más memoria del sistema operativo es una operación que requiere mucho tiempo, por lo que la mayoría de las JVM no liberan la memoria al sistema operativo incluso cuando ya no la necesitan.
Consulte este documento técnico de Oracle para obtener más detalles sobre la administración de memoria interna de JVM. http://www.oracle.com/technetwor…
- ¿Qué marca de RAM DDR4 es recomendada por otros, G-Skill o Corsair?
- ¿Es posible construir una memoria que sea tan rápida como un procesador?
- ¿Es suficiente una fuente de alimentación de 650 W (Corsair RM650) para un SLI GTX 970 con 16 (2 × 8) GB de RAM, i7-4790k y ventiladores de 7x120 mm?
- ¿Cuándo podemos esperar 16 gb de RAM en los teléfonos?
- ¿Cuál es la cantidad máxima de RAM que puede tener una Mac Mini?