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