Sobes.tech
Junior — Middle

Kā darbojas atkritumu savācējs un kādas atmiņas jomas tas tīra: heap vai stack?

sobes.tech AI

Atbilde no AI

Go atkritumu savācējs (Garbage Collector) automātiski atbrīvo atmiņu, kas vairs netiek izmantota programmā. Tas darbojas ar heap atmiņas zonu, kurā izvietoti dinamiskie objekti.

Steks (stack) ir atmiņas zona vietējiem mainīgajiem un funkciju izsaukumiem, kas tiek automātiski pārvaldīta, ieejot un izejot no funkcijām, un atkritumu savācējs to neiztīra.

Go darbības princips ir balstīts uz sasniedzamības izsekošanas algoritmu: tas atrod visus pieejamos objektus no saknes punktiem (steķis, globālie mainīgie) un izdzēš tos, kam nav atsauces.

Tādējādi, atkritumu savācējs iztīra heap, bet steks tiek pārvaldīts ar izsaukumu sistēmu un tiek automātiski atbrīvots.