Schauen wir uns zunächst die allgemeine Situation von JVM an, einschließlich: Heap -Speicherverbrauch, geladene Klassen, Anzahl der Threads und andere Informationen. Wie in der Abbildung unten gezeigt:
Schauen Sie sich dann den Speicherverbrauch von JVM an, das durch JConsole gesehen wird. JVM verwaltet hauptsächlich zwei Arten von Speicher: Heap und Nicht-Heap. Einfach ausgedrückt ist der Haufen der Speicher, der dem Java -Code zugänglich ist, der Entwicklern reserviert ist. Non-heap ist JVM für sich selbst reserviert. Alle Methodenbereiche, der Speicher, der für die interne Verarbeitung oder Optimierung von JVM (z. B. mit JIT kompilierter Code-Cache) erforderlich ist, jede Klassenstruktur (z. B. Laufzeitkonstante Pool, Felder und Methodendaten) und der Code von Methode und Konstruktor befinden sich im Nicht-Heutzu-Speicher. In JConsole sehen wir den Speicherstatus jedes Teils wie im folgenden Green Balk -Diagramm. In JConsole ist der Heap-Speicher von JVM unterteilt in: Eden Space Memory Pool, Survivor Space Memory Pool, Memory Pool mit festem Gen und Nicht-Heulchen-Speicher sind unterteilt in: Code-Cache-Speicherpool und Perm-Gen-Speicherpool. Wie in der Abbildung unten gezeigt:
Verwenden wir schließlich JConsole, um die Parametereinstellungen von JVM zu überprüfen, wie in der folgenden Abbildung gezeigt:
Die obigen JVM -Parameter sind wie folgt:
-Xms minimaler Haufen Speicherplatz
-XMX Maximaler Haufen Speicherplatz
-Xmn Neu Generation Space
-XSS Fadenstapelraum
-Xx: permsize = xxx dauerhafter Generierungsraum
-XX: maxpermsize = xxx maximal dauerhafter Generation Platz