Sobes.tech
Junior — Middle

Hogyan működik a szemétgyűjtő és mely memória területeket tisztít: heap vagy stack?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a szemétgyűjtő (Garbage Collector) automatikusan felszabadítja a program által már nem használt memóriát. A dinamikusan lefoglalt objektumokat tartalmazó heap memóriaterületen működik.

A verem (stack) egy memória terület a helyi változók és függvényhívások számára, amelyet automatikusan kezel a belépés és kilépés során, és a szemétgyűjtő nem tisztítja.

A szemétgyűjtő működési elve a Go-ban az elérhetőség nyomon követésén alapul: megtalálja az összes, a gyökérpontokból (verem, globális változók) elérhető objektumot, és eltávolítja azokat, amelyekhez nincs hivatkozás.

Így a szemétgyűjtő megtisztítja a heap-et, a verem pedig a hívási rendszer által van kezelve és automatikusan felszabadul.