Heim  >  Artikel  >  Java  >  Was hat PermGen in JDK 8 ersetzt und wie funktioniert es?

Was hat PermGen in JDK 8 ersetzt und wie funktioniert es?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 01:04:02662Durchsuche

What Replaced PermGen in JDK 8 and How Does It Work?

PermGen in JDK 8 eliminieren

Beim Upgrade auf JDK 8 wird beim Versuch, Eclipse zu starten, möglicherweise eine Warnmeldung angezeigt. Diese Warnung weist darauf hin, dass die Java Virtual Machine (JVM)-Option „MaxPermSize“ ignoriert wird, da sie in JDK 8 entfernt wurde.

Gründe für das Ignorieren von „MaxPermSize“

Der Permanent Generation (PermGen)-Speicherplatz, der von der Option „MaxPermSize“ verwaltet wird, wurde in JDK 8 aus HotSpot entfernt. Dies war in erster Linie der Fall aufgrund mehrerer Nachteile:

  • Feste Größe beim Start, was die Anpassung erschwert.
  • Undurchsichtig und schwach typisiert, was zu Debugging-Herausforderungen führt.
  • Begrenzte zukünftige Verbesserungen aufgrund seiner Einschränkungen.

MetaSpace: Ein Ersatz für PermGen

PermGen wurde durch Metaspace ersetzt, einen neuen Raum, der diese Nachteile behebt. Metaspace bietet mehrere Vorteile:

  • Klassenlader-spezifische Speicherbereiche, die die Zuordnung vereinfachen.
  • Lineare Zuordnung und keine individuelle Rückgewinnung, was die Effizienz steigert.
  • Kein GC-Scannen oder Komprimierung, Reduzierung des Overheads.
  • Unbegrenzte Standardgröße, Vermeidung von potenziellem Speicher Einschränkungen.

Metaspace-Tuning

Während die maximale Größe von Metaspace normalerweise unbegrenzt ist, können Sie sie mit dem Flag „-XX:MaxMetaspaceSize“ festlegen. Zusätzlich definiert „-XX:MetaspaceSize“ seine Anfangsgröße. Wenn nicht angegeben, passt sich Metaspace dynamisch an die Laufzeitanforderung an.

Zusammenfassend lässt sich sagen, dass die Eliminierung von PermGen und die Einführung von Metaspace in JDK 8 zu einer verbesserten GC-Leistung und einer vereinfachten Laufzeitverwaltung geführt haben. Entwickler sollten sich der veralteten Option „MaxPermSize“ und ihrer Auswirkungen auf ihre Anwendungen bewusst sein.

Das obige ist der detaillierte Inhalt vonWas hat PermGen in JDK 8 ersetzt und wie funktioniert es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn