Junior — Middle
Kuidas töötab prügikorjaja ja milliseid mälupiirkondi ta puhastab: heap või stack?
sobes.tech AI
Vastus AI-lt
Go-s olev prügi kogujal (Garbage Collector) vabastab automaatselt mälu, mida programm enam ei kasuta. See töötab mälu piirkonnas heap, kus paiknevad dünaamiliselt eraldatud objektid.
Käru (stack) on mälu piirkond kohalike muutujate ja funktsioonikutsumiste jaoks, mida hallatakse automaatselt funktsioonidesse sisenemisel ja väljumisel ning prügi kogujal seda ei puhasta.
Go-s põhineb prügi kogumise tööpõhimõte jõudmise jälgimise algoritmil: see leiab kõik objektid, mis on kättesaadavad juurpunktidest (käru, globaalmuutujad), ning eemaldab need, millele pole viiteid.
Sel viisil puhastab prügi koguja heap-i ning käru hallatakse kutsesüsteemi poolt ning see vabastatakse automaatselt.