Comment fonctionne le ramasse-miettes et quelles zones de mémoire nettoie-t-il : heap ou stack?
sobes.tech IA
Réponse de l'IA
Le ramasse-miettes (Garbage Collector) en Go libère automatiquement la mémoire qui n’est plus utilisée par le programme. Il fonctionne avec la zone de mémoire heap, où sont placés les objets alloués dynamiquement.
La pile (stack) est une zone de mémoire pour les variables locales et les appels de fonctions, qui est gérée automatiquement lors de l’entrée et de la sortie des fonctions, et le ramasse-miettes ne la nettoie pas.
Le principe de fonctionnement du ramasse-miettes en Go est basé sur l’algorithme de traçage de la reachabilité : il trouve tous les objets accessibles depuis les points racine (pile, variables globales) et supprime ceux auxquels il n’y a pas de références.
Ainsi, le ramasse-miettes nettoie le heap, et la pile est gérée par le système d’appels et se libère automatiquement.