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