Sobes.tech
Senior

Cos'è il garbage collector in Go?

sobes.tech AI

Risposta dell'AI

Il garbage collector (GC) in Go è un meccanismo automatico di gestione della memoria che libera gli oggetti non più utilizzati per prevenire perdite di memoria. Go utilizza un garbage collector concorrente, triggerato e a bassa latenza, che lavora in parallelo con il thread principale.

Il GC in Go traccia gli oggetti a cui non ci sono più riferimenti e libera la memoria che occupano. Questo permette agli sviluppatori di non doversi preoccupare della gestione manuale della memoria, riducendo la probabilità di errori come doppie liberazioni o perdite.

Esempio:

package main

import "fmt"

func main() {
    s := make([]int, 1000000) // assegna un grande slice
    fmt.Println(len(s))
    // Dopo l'uscita dalla funzione, s diventa inaccessibile e sarà raccolto dal GC
}

Qui, dopo che la funzione termina, la memoria occupata dal slice sarà automaticamente liberata dal garbage collector.