check java memory jvm-hotspot

check - Estado exacto de la memoria comprometida en java



java heap space (2)

"Esto significa que la memoria está en uso por el proceso de jvm y NO está disponible para otros procesos" sería la correcta. Por lo tanto, es menor (o igual a) la cantidad de memoria que el sistema operativo ve como tomada por el proceso de JVM.

http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html (lo siento, no hay anclas para vincular).

Tengo curiosidad por saber cuál es el significado exacto de la memoria "comprometida" cuando se consulta el valor de la clase MemoryUsage. Esa clase lo explica como "comprometido representa la cantidad de memoria (en bytes) que está garantizada para estar disponible para el uso de la máquina virtual Java". ¿Esto significa que la memoria está en uso por el proceso de jvm y NO está disponible para otros procesos hasta que sea liberada por el proceso de java, o significa que el proceso de java será exitoso si intenta asignar hasta esa cantidad de memoria ? Me doy cuenta de que esto podría ser específico de la implementación, pero solo me interesa el punto de acceso.


El tamaño comprometido es la memoria realmente asignada, el tamaño utilizado es el tamaño utilizado para almacenar datos reales (cuando se usa ~ = comprometido es el momento para GC mayor y posiblemente para aumentar el montón). El tamaño Máx. Es el límite estricto al que puede crecer el montón: si no es suficiente, la JVM arroja OutOfMemoryError.

Si se comete una memoria, definitivamente se puede usar. Además, la única ocasión en que JVM no podría comprometer más memoria (en un sistema operativo moderno) es si el hardware está fuera de la memoria virtual.

Todos estos tamaños solo indican el tamaño de la región de montón. La JVM también tiene otras regiones de memoria (pilas de hilo, caché JIT, etc.) La región de montón es generalmente más grande, esto corresponde aproximadamente a la huella del proceso.

Dos notas:

  • si el tamaño comprometido no cabe en la memoria física, partes del mismo se intercambiarán al archivo de página. Esto conduce a una gran desaceleración durante el GC y, en tales casos, mejorará el rendimiento de la aplicación al reducir el tamaño del montón.
  • algunos sistemas operativos permiten la doble reserva de memoria; puede asignar tanto como desee, siempre y cuando no intente usarlo (olvidó qué sistema operativo era, alguien me completó)