Escape Analysis in Go: Stack vs. Heap Allocations Explained
L'article explique l'analyse d'échappement en Go, un processus du compilateur qui décide si une valeur peut rester sur la pile ou doit être allouée sur le tas. Il détaille les causes courantes d'échappement, notamment le retour de pointeurs locaux, les closures et goroutines capturant des variables, le passage via des interfaces et le stockage dans des slices, maps ou structures persistantes. On y décrit comment inspecter ces décisions grâce au compilateur (go build -gcflags="-m") et pourquoi les logs bruts sont bruyants et difficiles à relier au code source. La fonctionnalité d'analyse d'échappement de l'IDE GoLand parse les sorties du compilateur pour afficher des marqueurs dans l'éditeur, filtrer et comparer les résultats, et faciliter l'investigation sans changer de contexte. Enfin l'article recommande de prioriser la mesure et le profilage, de se concentrer sur les chemins critiques et de privilégier la lisibilité du code plutôt que des micro‑optimisations prématurées.