Sobes.tech
Junior

Hoe werkt de garbage collector in JavaScript?

sobes.tech AI

Antwoord van AI

In JavaScript werkt de garbage collector automatisch door objecten te identificeren die niet meer toegankelijk zijn vanaf de bereikbare roots (globaal object, huidige functieroep, enz.) en het geheugen dat ze innemen vrij te maken.

Belangrijkste mechanismen:

  • Referentietelling: Verouderde methode die het aantal verwijzingen naar een object telt. Het geheugen wordt vrijgegeven wanneer de teller op nul staat. Nadeel: kan geen cyclische verwijzingen afhandelen.
  • Markeren en schoonmaken: Moderne en meest gebruikte methode.
    1. Markeren: Beginnend bij de roots, doorloopt de garbage collector recursief de objectgrafen en markeert alle toegankelijke objecten.
    2. Schoonmaken: Loopt door de heap en verwijdert alle objecten die niet als toegankelijk zijn gemarkeerd.

Het voordeel van "Markeren en schoonmaken" ten opzichte van "Referentietelling" is dat het cyclische verwijzingen correct afhandelt.

De JavaScript-engine (bijvoorbeeld V8 in Chrome) bewaakt voortdurend het geheugenverbruik en voert de garbage collector uit indien nodig. Ontwikkelaars kunnen dit proces niet direct controleren, maar kunnen er indirect invloed op uitoefenen door onnodige verwijzingen te vermijden en de levenscyclus van complexe objecten te beheren.