Junior — Middle
Bir kilobyte RAM tahsisi talebi yapıldığında sistemde ne olur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go sisteminde 1 kilobayt RAM tahsisi talebi yapıldığında birkaç adım gerçekleşir:
- Bellek tahsis fonksiyonunun çağrılması: Örneğin,
make,newveya sadece bir değişken oluşturmak. - Go'nun hafıza yöneticisi (runtime), yığında boş hafıza olup olmadığını kontrol eder. Eğer yeterli boş hafıza varsa, gereken boyutta bir blok tahsis eder.
- Eğer hafıza yetersizse, çöp toplayıcı (GC) başlatılır ve kullanılmayan nesneler serbest bırakılır.
- GC'den sonra hâlâ hafıza azsa, runtime ek hafıza talep eder (sistem çağrılarıyla, örneğin
mmap). - Tahsis edilen hafıza bloğu programa geri döndürülür ve verilerin saklanması için kullanılır.
Önemli olan, Go'nun hafızayı otomatik olarak yönetmesi ve programcının doğrudan sistem çağrılarıyla hafıza tahsisi yapmamasıdır.
1 KB bayt dizisi tahsisi örneği:
buffer := make([]byte, 1024) // 1024 bayt tahsis eder
Bu nedenle, Go'da bellek talebi, runtime ile etkileşimdir ve hafıza kullanımını optimize eder, gerekirse işletim sistemiyle iletişim kurar.