Sobes.tech
Senior

Qu'est-ce que le ramasse-miettes en Go?

sobes.tech IA

Réponse de l'IA

Le ramasse-miettes (GC) en Go est un mécanisme automatique de gestion de la mémoire qui libère les objets inutilisés pour éviter les fuites de mémoire. Go utilise un ramasse-miettes concurrent, déclenché et à faible latence, qui fonctionne en parallèle avec le thread principal.

Le GC en Go suit les objets auxquels il n’y a plus de références et libère la mémoire qu’ils occupent. Cela permet aux développeurs de ne pas se soucier de la gestion manuelle de la mémoire, réduisant ainsi le risque d’erreurs telles que la double libération ou les fuites.

Exemple:

package main

import "fmt"

func main() {
    s := make([]int, 1000000) // alloue une grande tranche
    fmt.Println(len(s))
    // Après la sortie de la fonction, s devient inaccessible et sera collecté par le GC
}

Ici, après la fin de la fonction, la mémoire occupée par la tranche sera automatiquement libérée par le ramasse-miettes.