Junior
Wat is een garbage collector?
sobes.tech AI
Antwoord van AI
Automatisch geheugenbeheersingsmechanisme dat ongebruikte objecten in de heap vrijmaakt.
Werkingsprincipes:
- Detectie van bereikbaarheid van objecten: Volgt de objecten waarnaar levende (toegankelijke) objecten vanaf de roots (bijvoorbeeld, de stack van threads) verwijzen.
- Vrijgave van ontoegankelijke objecten: Objecten zonder referenties worden als "rommel" beschouwd en hun geheugen kan worden hergebruikt.
Types garbage collectors (afhankelijk van taal/platform):
- Mark and Sweep: Markeert bereikbare objecten (markering), doorloopt vervolgens de heap en vrijmaakt niet gemarkeerde objecten (schoonmaak). Kan geheugenfragmentatie veroorzaken.
- Copying: Verdeelt de heap in twee delen. Kopieert levende objecten naar het nieuwe deel, en schoonmaakt het oude. Voorkomt fragmentatie, maar vereist meer geheugen.
- Generationeel: Verdeelt objecten op leeftijd in generaties. Verzamelt vaker garbage in de "jonge" generatie, waar de meeste objecten niet lang leven.
Voordelen:
- Vermindert de kans op geheugenlekken.
- Vereenvoudigt de ontwikkeling (moet geheugen niet expliciet vrijmaken).
Nadelen:
- Kan vertragingen (pauzes) veroorzaken tijdens de verzameling.
- Onvoorspelbare verzameltijden.