java - xmn - parametros jvm memoria
¿Por qué hay una diferencia de uso de memoria entre xmx y top? (1)
La opción -Xmx de la JVM especifica el maximum size of the Java garbage collected heap
. NO limita el tamaño de la memoria utilizada por la JVM. El tamaño del proceso informado por ps o top incluirá eso, más cualquier otra memoria utilizada por el proceso. Los siguientes son ejemplos de cosas que no forman parte del montón recogido de basura y, sin embargo, son parte de la memoria requerida por el proceso:
- Código para implementar la JVM
- El montón manual C para estructuras de datos que implementan la JVM
- Pilas para todos los hilos en el sistema (aplicación + JVM)
- Código de bytes de Java en caché (para bibliotecas y la aplicación)
- Código máquina JIT (para bibliotecas y la aplicación)
- Variables estáticas de todas las clases cargadas
Establecí xmx de jvm en 4 G, pero después de ejecutar por un tiempo, cuando uso top para ver la memoria, muestra que el proceso usó 12 G de memoria.
Entonces, ¿qué significa el xmx? ¿Qué debo hacer si quiero limitar la memoria jvm a 4 G?
línea de comando: -server -Xms4g -Xmx4g
Y otra pregunta relacionada :)
Si ocurre el gc, ¿JVM liberará inevitablemente el espacio de los objetos que no se usó más en la generación joven? o algunos de ellos se fueron al siguiente gc?
Gracias