Sobes.tech
Junior — Middle

Jak działa zbieracz śmieci i które obszary pamięci czyści: heap czy stack?

sobes.tech AI

Odpowiedź od AI

Zbieracz śmieci (Garbage Collector) w Go automatycznie zwalnia pamięć, która nie jest już używana przez program. Działa na obszarze pamięci heap, gdzie umieszczane są obiekty dynamicznie przydzielane.

Stos (stack) to obszar pamięci dla zmiennych lokalnych i wywołań funkcji, który jest zarządzany automatycznie podczas wchodzenia i wychodzenia z funkcji, a zbieracz śmieci go nie czyści.

Zasada działania zbieracza śmieci w Go opiera się na algorytmie śledzenia dostępności: znajduje wszystkie obiekty dostępne z punktów korzeniowych (stos, zmienne globalne) i usuwa te, do których nie ma odwołań.

W ten sposób zbieracz śmieci czyści heap, a stos jest zarządzany przez system wywołań i jest automatycznie zwalniany.