Junior
Ce este un colector de gunoi (Garbage Collector)?
sobes.tech AI
Răspuns de la AI
Mecanism automat de gestionare a memoriei care eliberează obiectele neutilizate din heap.
Principii de funcționare:
- Detecția accesibilității obiectelor: Urmărește obiectele la care fac referire obiecte vii (accesibile) din rădăcini (de exemplu, stiva firelor de execuție).
- Eliberarea obiectelor inaccesibile: Obiectele fără referințe sunt considerate "gunoi" și memoria lor poate fi reutilizată.
Tipuri de colectori de gunoi (depind de limbaj/platformă):
- Mark and Sweep: Marchează obiectele accesibile (marcare), apoi parcurge heap-ul și eliberează cele nemarcate (curățare). Poate duce la fragmentarea memoriei.
- Copying: Împarte heap-ul în două părți. Copiază obiectele vii în noua parte, apoi curăță vechea. Previne fragmentarea, dar necesită mai multă memorie.
- Generațional: Împarte obiectele după vârstă în generații. Colectează gunoi mai frecvent în "generația tânără", unde majoritatea obiectelor nu trăiesc mult.
Avantaje:
- Reduce probabilitatea scurgerilor de memorie.
- Simplifică dezvoltarea (nu este nevoie să eliberezi memoria explicit).
Dezavantaje:
- Poate cauza întârzieri (pauze) în execuția programului în timpul colectării.
- Timpul de colectare este imprevizibil.