1. Mark-Clear-Algorithmus
Der Ausführungsprozess ist derselbe wie der Name ist in zwei Phasen unterteilt: Markieren und löschen
Markieren Sie zunächst die Objekte, die recycelt werden müssen. Nach Abschluss der Markierung werden die markierten Objekte einheitlich recycelt, wie in der Abbildung unten gezeigt .
Eine Einführung in den spezifischen Markierungsprozess finden Sie in der „Erreichbarkeitsanalyse“ im vorherigen Artikel zur Bestimmung des Objektüberlebensalgorithmus für die Garbage Collection
Recycling Vorheriger Zustand >
Nachteile:
1. Die Effizienz ist nicht hoch, die Effizienz der beiden Aktionen Markieren und Löschen ist nicht zu hoch
2. Wie auf dem Bild zu sehen ist, enthält der Speicher nach dem Löschen eine große Anzahl von Fragmenten im Objekt. Der Nachteil besteht darin, dass es bei der Zuweisung von Speicherplatz zu großen Objekten zu kommen kann dadurch, dass kein ausreichend großer zusammenhängender Raum gefunden werden kann, was dazu führt, dass im Voraus ein GC auftritt.
2. Kopieralgorithmus Das Prinzip des Kopieralgorithmus besteht darin, den Speicherplatz in zwei Teile aufzuteilen Wenn eine Speicherbereinigung erforderlich ist, kopieren Sie die verbleibenden Objekte im verwendeten Speicher in einen anderen Speicherbereich und löschen Sie dann den vorherigen Speicherbereich. Wie im Bild unten gezeigt
Zustand vor dem Recycling
Re Radsportpostenstaat
Vorteile: Der Replikationsalgorithmus ist effizienter
Nachteile: Dies Der durch die geopferte Platz Algorithmus ist größer. Immerhin ist der nutzbare Speicherplatz halb so groß wie ursprünglich
3. Markieren Sie den Sortieralgorithmus
Dies ist ein Algorithmus, der häufig in der alten Generation verwendet wird, da Objekte in der alten Generation für eine lange Zeit gespeichert werden.
Der Markierungsprozess des Markierungs- und Sortieralgorithmus ist der gleiche wie der Markierungsreinigungsalgorithmus, die nachfolgenden Schritte sind jedoch unterschiedlich. Der Markierungs- und Sortieralgorithmus verschiebt die überlebenden Objekte an einem Ende,
Bereinigen Sie dann den gesamten Speicher auf der anderen Seite der Überlebensgrenze, wie unten gezeigt
Vorheriger Zustand
🎜> 4. Generationssammlungsalgorithmus
Aktuelle virtuelle Maschinen verwenden alle den Generationssammlungsalgorithmus . Dieser Algorithmus unterteilt den Speicher entsprechend den unterschiedlichen Überlebenszyklen von Objekten
Im Allgemeinen wird der Java-Heap in die neue Generation und die alte Generation unterteilt
5. Algorithmusnutzung der neuen Generation
In kommerziellen virtuellen Maschinen wird der Replikationsalgorithmus zum Garbage Collection der neuen Generation verwendet. der Objekte der neuen Generation haben eine sehr kurze Überlebenszeit
Daher ist es nicht notwendig, den Speicher in zwei Blöcke gleicher Größe aufzuteilen, so dass nur ein kleinerer Raum für das Kopieren überlebender Objekte übrig bleibt. Daher wird der -Speicher normalerweise in einen größeren Eden-Bereich und zwei kleinere Überlebensbereiche unterteilt. Beim Recycling werden die überlebenden Objekte im Eden-Bereich und im Überlebensbereich in einen anderen Bereich kopiertIm Survivor-Bereich, Eden und den gebrauchten Servivor aufräumen.
Das obige ist der detaillierte Inhalt vonJVM Advanced Features – Garbage Collection-Algorithmus-Tutorial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!