Junior — Middle
Go dilinde otomatik çöp toplama mekanizmasını ve belleği nasıl yönettiğini açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde otomatik çöp toplayıcı (Garbage Collector, GC) kullanılır ve bu, kullanılmayan nesneleri serbest bırakarak belleği yönetir.
Mekanizma, nesnelerin erişilebilirliğini izleme ve sayma algoritmasına dayanır:
- Go, programın yürütülmesiyle paralel olarak çöp toplamayı başlatır (eşzamanlı GC).
- GC, kök referanslardan (örneğin, küresel değişkenler, goroutine yığınları) artık erişilemeyen nesneleri belirler.
- Erişilemeyen nesneler çöp olarak kabul edilir ve serbest bırakılır.
Özellikler:
- Go, üç nesil toplama kullanır: mark (erişilebilir nesneleri işaretle), sweep (erişilemeyenleri temizle).
- Çöp toplama, programın yürütülmesini engellemeden duraklamaları en aza indirir.
- Bellek yönetimi otomatik olup, programcıların belleği açıkça serbest bırakmasına gerek yoktur.
Örnek:
func main() {
s := make([]int, 1000000) // bellek ayırma
// s'yi kullan
s = nil // artık erişilebilir değil
// GC, bir sonraki çalıştırmada belleği serbest bırakacaktır
}
Bu şekilde, Go bellek yönetimini basitleştirir, sızıntı ve hataların olasılığını azaltır.