Во -первых, давайте посмотрим на общую ситуацию JVM, в том числе: использование памяти кучи, загруженные классы, количество потоков и другую информацию. Как показано на рисунке ниже:
Затем посмотрите на использование памяти JVM, которое было видно через JConsole. JVM в основном управляет двумя типами памяти: куча и не HEAP. Проще говоря, куча - это память, доступная для кода Java, которая зарезервирована для разработчиков; Не HEAP зарезервирован для JVM для себя. Все области методов, память, необходимая для внутренней обработки или оптимизации JVM (например, Compled Code Cache JIT), каждая структура класса (такая как постоянный пул времени выполнения, данные поля и данные метода), а также код метода и конструктора находятся в не-HEAP Memory. В JConsole мы видим состояние памяти каждой части, как показано на рисунке Green Bar ниже. В JConsole память о куче JVM разделена на: пул пространственной памяти Eden, пул памяти Survivor, пул памяти штата генерал и память, не являющаяся HEAP, делятся на: Pool Memory Cache Cache и Perm Gen Pool. Как показано на рисунке ниже:
Наконец, давайте используем JConsole для проверки параметров параметров JVM, как показано на рисунке ниже:
Приведенные выше параметры JVM следующие:
-Xms минимальное пространство кучи
-Xmx максимальное пространство кучи
-Xmn Новое поколение пространство
-XSS Стоковое пространство стека потоков
-Xx: permsize = xxx пространство постоянного генерации
-Xx: maxpermsize = xxx максимальное пространство постоянного генерации