/ / Java VM puede hacerse más pequeño el montón? - java, jvm

¿Java VM puede hacerse más pequeño el montón? - java, jvm

Si ejecuto un programa Java, la VM inicialmente asigna algo de memoria para el montón, ¿verdad?

cada vez que la memoria utilizada tomaría más de lo disponible, el montón aumentará, ¿verdad?

¿Es posible que el montón se haga más pequeño, una vez que se use menos memoria?

¡Gracias!

Respuestas

5 para la respuesta № 1

Sí, el recolector de basura es libre de reducir el tamaño.de montón si descubre, después de algunas colecciones, que la aplicación demanda memoria de forma más pequeña que el montón configurado. Puede observar esta función en VisualVM, aquí se analiza el estrés de una instancia de Tomcat con ab:

Memoria visualvm

Como se puede ver el tamaño del montón (serie naranja)Cambios básicamente después de cada GC (drop in blue series). A veces aumenta el tamaño del montón, a veces disminuye. JVM es libre de ajustar el tamaño según el uso real (aquí el tamaño total del montón se estableció en 1G).


0 para la respuesta № 2

Bueno, el proceso de Java comienza con una inicialasignación de memoria para el montón y una asignación máxima para dicho montón. Es lo que pasa a través de los argumentos de línea de comando de -Xms y Xmx jvm. Estos no pueden cambiar durante la ejecución del proceso.

La cantidad real de memoria que utilizan las instancias de sus objetos puede disminuir después de una recolección de basura.