Sobes.tech
Senior

Czym jest garbage collector w Go?

sobes.tech AI

Odpowiedź od AI

Garbage collector (GC) w Go to automatyczny mechanizm zarządzania pamięcią, który zwalnia nieużywane obiekty, aby zapobiec wyciekom pamięci. Go używa konkurencyjnego, wyzwalanego i o niskim opóźnieniu zbieracza śmieci, który działa równolegle z głównym wątkiem wykonawczym.

GC w Go śledzi obiekty, do których nie ma już odwołań, i zwalnia pamięć, którą zajmują. Pozwala to programistom nie martwić się o ręczne zarządzanie pamięcią, zmniejszając ryzyko błędów, takich jak podwójne zwolnienie czy wycieki.

Przykład:

package main

import "fmt"

func main() {
    s := make([]int, 1000000) // przydziela duży fragment
    fmt.Println(len(s))
    // Po wyjściu z funkcji, s stanie się niedostępny i zostanie zebrany przez GC
}

Tutaj, po zakończeniu funkcji, pamięć zajmowana przez fragment zostanie automatycznie zwolniona przez zbieracz śmieci.