Sobes.tech
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.