Junior
Cum funcționează colectorul de gunoi în JavaScript?
sobes.tech AI
Răspuns de la AI
În JavaScript, colectorul de gunoi funcționează automat, identificând obiectele care nu mai sunt accesibile din rădăcinile accesibile (obiect global, apel de funcție curent etc.) și eliberând memoria ocupată de acestea.
Mecanismele principale:
- Contorul de referințe: Metodă învechită care numără câte referințe există către un obiect. Memoria este eliberată când contorul ajunge la zero. Dezavantaj: nu poate gestiona referințele ciclice.
- Marcarea și ștergerea: Metodă modernă și cea mai răspândită.
- Marcarea: Începând de la rădăcini, colectorul de gunoi parcurge recursiv graful obiectelor, marcând toate obiectele accesibile.
- Curățarea: Parcurge heap-ul și elimină toate obiectele care nu au fost marcate ca accesibile.
Avantajul "Marcării și ștergerii" față de "Contorul de referințe" este că gestionează corect referințele ciclice.
Motorul JavaScript (de exemplu, V8 în Chrome) monitorizează constant utilizarea memoriei și rulează colectorul de gunoi după necesitate. Dezvoltatorul nu poate controla direct acest proces, dar poate influența indirect, evitând referințe inutile și gestionând ciclul de viață al obiectelor complexe.