# Zarządzanie pamięcią (Go) > Stack vs heap, escape analysis, garbage collector, profilowanie pamięci, pprof, wycieki pamięci - 24 pytań z rozmów - Senior - [Pytania z rozmów: Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne.md) ## 1. Jaka jest główna różnica między alokacją na stosie (stack) a alokacją na stercie (heap) w Go? **Odpowiedź** Stos jest zarządzany automatycznie, a alokacje są niezwykle szybkie (proste przesunięcie wskaźnika stosu). Zmienne na stosie są automatycznie zwalniane, gdy funkcja zwraca wartość. Sterta wymaga garbage collectora do zwolnienia pamięci, a alokacje są wolniejsze, ponieważ angażują runtime Go. Zmienne, które przetrwają poza funkcją lub których rozmiar nie jest znany w czasie kompilacji, trafiają na stertę. ## 2. Czym jest escape analysis w Go? **Odpowiedź** Escape analysis to analiza statyczna wykonywana przez kompilator Go w celu ustalenia, czy zmienna może pozostać na stosie, czy musi zostać zaalokowana na stercie. Jeśli kompilator wykryje, że zmienna jest referencjonowana poza funkcją, w której ją utworzono (poprzez zwrócony wskaźnik, zapis w zmiennej globalnej itp.), zmienna 'ucieka' i zostanie zaalokowana na stercie. Ta analiza automatycznie optymalizuje alokacje pamięci. ## 3. Jak zobaczyć wyniki escape analysis podczas kompilacji? **Odpowiedź** Flaga -gcflags=-m pozwala zobaczyć decyzje escape analysis. Użycie -m=2 lub -m=3 dostarcza więcej szczegółów na temat tego, dlaczego zmienna ucieka. Na przykład 'go build -gcflags=-m=2' wyświetli komunikaty takie jak 'moved to heap: x', wskazując, że zmienna została przeniesiona na stertę. To narzędzie jest niezbędne do optymalizacji alokacji pamięci w krytycznym kodzie. ## Jeszcze 21 dostępnych pytań - W jakim przypadku zmienna lokalna ucieka na stertę? - Jaka jest główna rola garbage collectora w Go? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne Go - [Podstawy Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-basics.md): 25 pytań, Junior - [Struktury danych w Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-data-structures.md): 20 pytań, Junior - [Interfejsy w Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-interfaces.md): 18 pytań, Junior - [Obsługa błędów](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/error-handling.md): 20 pytań, Junior - [Podstawy goroutines](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/goroutines-basics.md): 20 pytań, Junior - [Channels](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/channels.md): 22 pytań, Junior - [Go Modules](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-modules.md): 18 pytań, Mid-Level - [Serwer HTTP](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/http-server.md): 24 pytań, Mid-Level - [Klient HTTP](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/http-client.md): 18 pytań, Mid-Level - [Kodowanie JSON](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/json-encoding.md): 20 pytań, Mid-Level - [Database/SQL](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/database-sql.md): 22 pytań, Mid-Level - [Pakiet context](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/context-package.md): 20 pytań, Mid-Level - [Testing](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/testing.md): 22 pytań, Mid-Level - [Wzorce współbieżności](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/concurrency-patterns.md): 24 pytań, Mid-Level - [Prymitywy synchronizacji](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/sync-primitives.md): 22 pytań, Mid-Level - [Frameworki webowe Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-web-frameworks.md): 20 pytań, Mid-Level - [Projektowanie API REST](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/rest-api-design.md): 20 pytań, Mid-Level - [gRPC](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/grpc.md): 22 pytań, Mid-Level - [Reflection](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/reflection.md): 20 pytań, Senior - [Optymalizacja wydajności](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/performance-optimization.md): 22 pytań, Senior - [Generics](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/generics.md): 20 pytań, Senior - [Go Design Patterns](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/design-patterns.md): 24 pytań, Senior - [Microservices](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/microservices.md): 24 pytań, Senior - [Bezpieczeństwo i uwierzytelnianie](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/security-authentication.md): 24 pytań, Senior - [Docker & Containerization](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/docker-containerization.md): 20 pytań, Senior - [Kubernetes Basics](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/kubernetes-basics.md): 22 pytań, Senior - [Zaawansowany Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/advanced-go.md): 20 pytań, Senior - [Tworzenie CLI](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/cli-development.md): 20 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/memory-management