Junior
Was ist ein Garbage Collector (Müllsammler)?
sobes.tech KI
Antwort von AI
Automatischer Speicherverwaltungsmechanismus, der ungenutzte Objekte im Heap freigibt.
Funktionsprinzipien:
- Erkennung der Erreichbarkeit von Objekten: Überwacht Objekte, auf die lebende (zugängliche) Objekte von den Wurzeln (z. B. Thread-Stacks) verweisen.
- Freigabe unerreichbarer Objekte: Objekte ohne Referenzen gelten als "Müll" und ihr Speicher kann wiederverwendet werden.
Arten von Müllsammlern (abhängig von Sprache/Plattform):
- Mark and Sweep: Markiert erreichbare Objekte (Markierung), durchläuft dann den Heap und gibt nicht markierte Objekte frei (Bereinigung). Kann zu Speicherfragmentierung führen.
- Copying: Teilt den Heap in zwei Teile. Kopiert lebende Objekte in den neuen Teil, dann bereinigt es den alten. Verhindert Fragmentierung, benötigt aber mehr Speicher.
- Generational: Teilt Objekte nach Alter in Generationen. Sammelt Müll häufiger in der "jungen" Generation, in der die meisten Objekte nicht lange leben.
Vorteile:
- Verringerung der Wahrscheinlichkeit von Speicherlecks.
- Vereinfachung der Entwicklung (muss Speicher nicht explizit freigeben).
Nachteile:
- Kann Verzögerungen (Pausen) bei der Programmausführung während der Sammlung verursachen.
- Unvorhersehbare Sammelzeiten.