Primero, echemos un vistazo a la situación general de JVM, que incluya: uso de memoria de montón, clases cargadas, número de hilos y otra información. Como se muestra en la figura a continuación:
Luego eche un vistazo al uso de memoria de JVM visto a través de JConsole. JVM administra principalmente dos tipos de memoria: montón y no montón. En pocas palabras, el montón es la memoria a la que se puede acceder al código Java, que está reservado para los desarrolladores; No HAEP está reservado para JVM para sí mismo. Todas las áreas de método, la memoria requerida para el procesamiento interno u optimización de JVM (como el caché de código compilado JIT), cada estructura de clase (como el grupo constante de tiempo de ejecución, los campos y los datos del método), y el código de método y el constructor están en la memoria no es-Heap. En JConsole vemos el estado de memoria de cada parte como se muestra en la tabla de barra verde a continuación. En JConsole, la memoria del montón de JVM se divide en: el grupo de memoria de Eden Space, el grupo de memoria de espacio de sobrevivientes, el grupo de memoria de generación de generación y la memoria sin lavado se divide en: Code Cache Memory Pool y Permem Memory Grow. Como se muestra en la figura a continuación:
Finalmente, usemos JConsole para verificar la configuración de los parámetros de JVM, como se muestra en la figura a continuación:
Los parámetros JVM anteriores son los siguientes:
-Xms espacio de montón mínimo
-Xmx espacio máximo de montón
-Xmn espacio de nueva generación
-Xss hilo pila espacio
-Xx: permSize = xxx espacio de generación permanente
-Xx: maxPermsize = xxx espacio de generación permanente máximo