Junior — Middle
Ako funguje zberač odpadu a aké oblasti pamäte čistí: heap alebo stack?
sobes.tech AI
Odpoveď od AI
Správca odpadkov (Garbage Collector) v Go automaticky uvoľňuje pamäť, ktorá už nie je používaná programom. Pracuje s oblasťou pamäte heap, kde sú umiestnené dynamicky alokované objekty.
Zásobník (stack) je oblasť pamäte pre lokálne premenné a volania funkcií, ktorá sa automaticky spravuje pri vstupe a výstupe z funkcií, a správca odpadkov ho nečistí.
Princíp fungovania správcu odpadkov v Go je založený na algoritme sledovania dostupnosti: nájde všetky objekty dostupné z koreňových bodov (zásobník, globálne premenné) a odstráni tie, na ktoré nie sú odkazy.
Týmto spôsobom správca odpadkov čistí heap, a zásobník je spravovaný systémom volaní a je automaticky uvoľnený.