Heim  >  Artikel  >  Java  >  JVM-Speicherverwaltung ------Detaillierte Erläuterung der Garbage Collector-Parameter

JVM-Speicherverwaltung ------Detaillierte Erläuterung der Garbage Collector-Parameter

黄舟
黄舟Original
2016-12-28 15:52:581650Durchsuche

Dieser Artikel ist der letzte, der sich auf GC bezieht. Dieses Mal listet LZ nur die Schlüsselparameter auf, die sich auf den Garbage Collector in der Hotspot-JVM beziehen, sowie die Erklärung jedes Parameters. Lassen Sie uns ohne weitere Umschweife beginnen.

Garbage-Collector-Auswahlparameter

UseSerialGC: Aktivieren Sie diesen Parameter, um seriellen und seriellen alten Collector zu verwenden (Standardwert für den Client-Modus).
UseParNewGC: Aktivieren Sie diesen Parameter, um ParNew und den seriellen alten Collector zu verwenden (nicht empfohlen).
UseConcMarkSweepGC: Aktivieren Sie diesen Parameter, um den ParNew- und CMS-Kollektor (seriell alt ist der Ersatz) zu verwenden.
UseParallelGC: Aktivieren Sie diesen Parameter, um Parallel Scavenge und Parallel Old Collector zu verwenden (Standardwert im Servermodus).
UseParallelOldGC: Aktivieren Sie diesen Parameter, um den parallelen alten Collector in der alten Generation zu verwenden (dieser Parameter ist nach JDK1.5 nutzlos).

Parameter im Zusammenhang mit der Größe jedes JVM-Speicherbereichs

Xms: der Anfangswert des Heaps. Der Standardwert beträgt 1/64 des physischen Speichers und das Maximum überschreitet 1 GB nicht.
Xmx: Der Maximalwert des Heaps. Der Standardwert beträgt 1/4 des physischen Speichers und das Maximum überschreitet 1 GB nicht.
Xmn: Die Größe der neuen Generation.
Xss: Thread-Stapelgröße.
PermSize: Anfangsgröße der permanenten Generation. Der Standardwert beträgt 1/64 des physischen Speichers und das Maximum überschreitet 1 GB nicht.
MaxPermSize: Maximale permanente Generationsgröße. Der Standardwert beträgt 1/4 des physischen Speichers und das Maximum überschreitet 1 GB nicht.
NewRatio: Das Verhältnis der neuen Generation zur alten Generation. Wenn es beispielsweise 3 ist, belegt die neue Generation 1/4 des Heaps und die alte Generation 3/4.
SurvivorRatio: Passen Sie das Verhältnis von Eden-Bereich und Survivor-Bereich in der neuen Generation an. Der Standardwert ist 8, dh der Eden-Bereich beträgt 80 % der Größe und die beiden Überlebenden betragen jeweils 10 %. (Hinweis: Diese Parametereinstellung ist eine Methode zur Lösung des Problems der Halbierung des Speichers des Replikationsalgorithmus im Kapitel zur Erläuterung des Replikationsalgorithmus. Der Eden-Bereich ist der 80%-Teil im Kapitel des Replikationsalgorithmus und der Survivor-Bereich ist zwei 10% Dieser Teil )

Allgemeine Parameter der Garbage Collector-Leistung

PretenureSizeThreshold: Die Objektgröße für die Förderung der alten Generation. Der Standardwert ist 0. Wenn er beispielsweise auf 10 MB eingestellt ist, werden Objekte mit mehr als 10 MB nicht im Eden-Bereich zugewiesen, sondern gelangen direkt in die alte Generation.
MaxTenuringThreshold: Das maximale Alter für den Aufstieg in die alte Generation. Der Standardwert ist 15. Wenn er beispielsweise auf 10 eingestellt ist, wird das Objekt nach 10 normalen GC-Zeiten in die alte Generation eingefügt.
DisableExplicitGC: System.gc() deaktivieren.

Parallelkollektorparameter

ParallelGCThreads: Die Anzahl der während des Recyclings geöffneten Threads. Der Standardwert entspricht der Anzahl der CPUs.
GCTimeRatio: Stellen Sie den Durchsatz des Systems ein. Wenn es beispielsweise auf 99 eingestellt ist, beträgt das GC-Zeitverhältnis 1/1+99=1 %, was bedeutet, dass der erforderliche Durchsatz 99 % beträgt. Kann diese nicht erfüllt werden, wird die Größe der neuen Generation reduziert.
MaxGCPauseMillis: Legen Sie die maximale Pausenzeit für die Speicherbereinigung fest. Wenn der eingestellte Wert nicht erreicht werden kann, wird der Reduzierung der Größe der neuen Generation Vorrang eingeräumt. Wenn er immer noch nicht erreicht wird, wird der Durchsatz geopfert.

Parameter des gleichzeitigen Kollektors

CMSInitiatingOccupancyFraction: Das Speicherverhältnis, das den CMS-Kollektor auslöst. Beispielsweise bedeutet 60 %, dass die gleichzeitige CMS-Erfassung beginnt, wenn der Speicher 60 % erreicht.
UseCMSCompactAtFullCollection: Dies wurde bereits erwähnt und wird verwendet, um eine Speicherdeflation zu senden, nachdem der CMS-Collector jedes Mal Müll bereinigt.
CMSFullGCsBeforeCompaction: Legen Sie fest, dass nach mehreren CMS-Garbage-Collections eine Speicherkomprimierung ausgelöst wird.

Fazit

Die GC-bezogene Serie ist im Grunde genommen vorbei. Dann betreten wir die Quellcode-Welt der virtuellen Maschinen.

Das Obige ist eine detaillierte Erklärung der JVM-Speicherverwaltung ------ Garbage Collector-Parameter. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


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