
Bellek Yönetimi
Stack vs heap, escape analysis, garbage collector, bellek profilleme, pprof, bellek sızıntıları
1Go'da stack tahsisi ile heap tahsisi arasındaki temel fark nedir?
Go'da stack tahsisi ile heap tahsisi arasındaki temel fark nedir?
Cevap
Stack otomatik olarak yönetilir ve tahsisler son derece hızlıdır (basit bir stack pointer hareketi). Stack üzerindeki değişkenler fonksiyon döndüğünde otomatik olarak serbest bırakılır. Heap, belleği serbest bırakmak için garbage collector'a ihtiyaç duyar ve Go runtime'ı devreye girdiği için tahsisler daha yavaştır. Fonksiyonun ötesinde yaşayan veya boyutu derleme zamanında bilinmeyen değişkenler heap'e gider.
2Go'da escape analysis nedir?
Go'da escape analysis nedir?
Cevap
Escape analysis, bir değişkenin stack üzerinde kalabileceğini mi yoksa heap'te tahsis edilmesi gerektiğini mi belirlemek için Go derleyicisi tarafından yapılan statik bir analizdir. Derleyici bir değişkenin oluşturulduğu fonksiyonun dışında referans verildiğini tespit ederse (döndürülen bir pointer, global bir değişkende saklama vb.), değişken 'escape' eder ve heap'te tahsis edilir. Bu analiz bellek tahsislerini otomatik olarak optimize eder.
3Derleme sırasında escape analysis sonuçları nasıl görüntülenir?
Derleme sırasında escape analysis sonuçları nasıl görüntülenir?
Cevap
-gcflags=-m bayrağı escape analysis kararlarını görüntülemeyi sağlar. -m=2 veya -m=3 kullanmak, bir değişkenin neden escape ettiğine dair daha fazla ayrıntı sağlar. Örneğin 'go build -gcflags=-m=2', bir değişkenin heap'e taşındığını belirtmek için 'moved to heap: x' gibi mesajlar gösterir. Bu araç, kritik kodda bellek tahsislerini optimize etmek için gereklidir.
Bir yerel değişken hangi durumda heap'e escape eder?
Go'da garbage collector'ın temel rolü nedir?
+21 mülakat soruları
Diğer Go mülakat konuları
Go Temelleri
Go Veri Yapıları
Go Arayüzleri
Hata Yönetimi
Goroutine Temelleri
Channels
Go Modules
HTTP Sunucusu
HTTP İstemcisi
JSON Kodlama
Database/SQL
context Paketi
Testing
Eşzamanlılık Desenleri
Senkronizasyon İlkelleri
Go Web Framework'leri
REST API Tasarımı
gRPC
Reflection
Performans Optimizasyonu
Generics
Go Design Patterns
Microservices
Güvenlik ve Kimlik Doğrulama
Docker & Containerization
Kubernetes Basics
İleri Düzey Go
CLI Geliştirme
Bir sonraki mülakatın için Go'de uzmanlaş
Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.
Ücretsiz başla