# Gestion mémoire (Go) > Stack vs heap, escape analysis, garbage collector, memory profiling, pprof, memory leaks - 24 questions d'entretien - Senior - [Questions d'entretien: Go](https://sharpskill.dev/fr/technologies/go/questions-entretien.md) ## 1. Quelle est la différence principale entre l'allocation sur la stack et l'allocation sur le heap en Go ? **Réponse** La stack est gérée automatiquement et les allocations y sont extrêmement rapides (simple déplacement du stack pointer). Les variables sur la stack sont automatiquement libérées quand la fonction retourne. Le heap nécessite le garbage collector pour libérer la mémoire et les allocations y sont plus lentes car elles impliquent le runtime Go. Les variables qui survivent au-delà de la fonction ou dont la taille n'est pas connue à la compilation vont sur le heap. ## 2. Qu'est-ce que l'escape analysis en Go ? **Réponse** L'escape analysis est une analyse statique effectuée par le compilateur Go pour déterminer si une variable peut rester sur la stack ou doit être allouée sur le heap. Si le compilateur détecte qu'une variable est référencée en dehors de sa fonction de création (via un pointeur retourné, stockage dans une variable globale, etc.), la variable 'échappe' et sera allouée sur le heap. Cette analyse permet d'optimiser automatiquement les allocations mémoire. ## 3. Comment voir les résultats de l'escape analysis lors de la compilation ? **Réponse** Le flag -gcflags=-m permet de voir les décisions d'escape analysis. Utiliser -m=2 ou -m=3 donne plus de détails sur les raisons pour lesquelles une variable échappe. Par exemple 'go build -gcflags=-m=2' affichera des messages comme 'moved to heap: x' pour indiquer qu'une variable a été déplacée sur le heap. Cet outil est essentiel pour optimiser les allocations mémoire dans du code critique. ## 21 questions supplémentaires disponibles - Dans quel cas une variable locale échappe-t-elle au heap ? - Quel est le rôle principal du garbage collector en Go ? S'inscrire gratuitement: https://sharpskill.dev/fr/login ## Autres sujets d'entretien Go - [Les bases de Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-basics.md): 25 questions, Junior - [Structures de données Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-data-structures.md): 20 questions, Junior - [Interfaces Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-interfaces.md): 18 questions, Junior - [Gestion des erreurs](https://sharpskill.dev/fr/technologies/go/questions-entretien/error-handling.md): 20 questions, Junior - [Goroutines basiques](https://sharpskill.dev/fr/technologies/go/questions-entretien/goroutines-basics.md): 20 questions, Junior - [Channels](https://sharpskill.dev/fr/technologies/go/questions-entretien/channels.md): 22 questions, Junior - [Go Modules](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-modules.md): 18 questions, Confirmé - [Serveur HTTP](https://sharpskill.dev/fr/technologies/go/questions-entretien/http-server.md): 24 questions, Confirmé - [Client HTTP](https://sharpskill.dev/fr/technologies/go/questions-entretien/http-client.md): 18 questions, Confirmé - [Encodage JSON](https://sharpskill.dev/fr/technologies/go/questions-entretien/json-encoding.md): 20 questions, Confirmé - [Database/SQL](https://sharpskill.dev/fr/technologies/go/questions-entretien/database-sql.md): 22 questions, Confirmé - [Package context](https://sharpskill.dev/fr/technologies/go/questions-entretien/context-package.md): 20 questions, Confirmé - [Testing](https://sharpskill.dev/fr/technologies/go/questions-entretien/testing.md): 22 questions, Confirmé - [Patterns de concurrence](https://sharpskill.dev/fr/technologies/go/questions-entretien/concurrency-patterns.md): 24 questions, Confirmé - [Primitives de synchronisation](https://sharpskill.dev/fr/technologies/go/questions-entretien/sync-primitives.md): 22 questions, Confirmé - [Frameworks web Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/go-web-frameworks.md): 20 questions, Confirmé - [Design d'API REST](https://sharpskill.dev/fr/technologies/go/questions-entretien/rest-api-design.md): 20 questions, Confirmé - [gRPC](https://sharpskill.dev/fr/technologies/go/questions-entretien/grpc.md): 22 questions, Confirmé - [Reflection](https://sharpskill.dev/fr/technologies/go/questions-entretien/reflection.md): 20 questions, Senior - [Optimisation des performances](https://sharpskill.dev/fr/technologies/go/questions-entretien/performance-optimization.md): 22 questions, Senior - [Generics](https://sharpskill.dev/fr/technologies/go/questions-entretien/generics.md): 20 questions, Senior - [Design Patterns Go](https://sharpskill.dev/fr/technologies/go/questions-entretien/design-patterns.md): 24 questions, Senior - [Microservices](https://sharpskill.dev/fr/technologies/go/questions-entretien/microservices.md): 24 questions, Senior - [Sécurité & Authentication](https://sharpskill.dev/fr/technologies/go/questions-entretien/security-authentication.md): 24 questions, Senior - [Docker & Containerization](https://sharpskill.dev/fr/technologies/go/questions-entretien/docker-containerization.md): 20 questions, Senior - [Kubernetes Basics](https://sharpskill.dev/fr/technologies/go/questions-entretien/kubernetes-basics.md): 22 questions, Senior - [Go Avancé](https://sharpskill.dev/fr/technologies/go/questions-entretien/advanced-go.md): 20 questions, Senior - [Développement CLI](https://sharpskill.dev/fr/technologies/go/questions-entretien/cli-development.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/fr/technologies/go/questions-entretien/memory-management