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.