2013-09-23 11 views
6

In Java 6 verwenden wir die folgenden GC-Konfiguration verwenden Perm Gen OutOfMemoryException nach einigen Umschichtungen unserer App zu verhindern:Klasse Entladen in Java G1 Garbage Collector (G1GC)

-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

Wir ziehen um Java 7 und möchte den neuen G1 GC verwenden, der von dem, was ich gelesen habe, verschiebt die Klassen von der PermGen in Java-Speicher in nativen Speicher.

Gibt es ein Flag zum Entladen nicht verwendeter Klassen?

Antwort

7

Das G1 führt das Entladen der Klasse während eines vollständigen GC durch, daher müssen Sie keine Parameter angeben, um dies zu aktivieren.

Sie können selbst sehen, indem Sie das -XX:+TraceClassUnloading Argument verwenden.

überprüfen Sie auch diesen E-Mail-Thread aus der HotSpot GC-Mailingliste aus: Bug in G1GC it performs Full GC when code cache is full resulting in overkill. Sie diskutieren ziemlich ausführlich über das Entladen von Klassen in G1. Zusammenfassend können Sie -noclassgc verwenden, wenn Probleme mit dem Entladen der Klasse auftreten, aber normalerweise gibt es keine Probleme beim Entladen der Klasse in G1.

Verwandte Themen