Bellek Yönetimi Nedir?
İngilizce: Memory Management
Yayın: · Son güncelleme:
Bellek Yönetimi Nedir? Kısaca
Bellek yönetimi, bir programın çalışırken ihtiyaç duyduğu belleği ayırma, kullanma ve işi bitince geri verme sürecidir. Bu iş dile göre ya geliştirici tarafından elle ya da çöp toplayıcı gibi otomatik mekanizmalarla yapılır.

Bellek yönetimi nedir?
Bellek yönetimi, programın kullandığı RAM alanını düzenli tutma işidir. Program bir değişken, liste ya da nesne oluşturduğunda bunun için yer ayrılır. Veri artık gerekmediğinde o yerin geri verilmesi gerekir. Bu döngü iyi yönetilmezse program yavaşlar, giderek daha fazla RAM ister ve sonunda işletim sistemi tarafından kapatılarak çöker.
Nasıl çalışır?
Programın kullandığı alan genel olarak iki bölgeye ayrılır. Stack, fonksiyon çağrıları ve kısa ömürlü yerel değişkenler için kullanılır; fonksiyon bitince otomatik temizlenir. Heap ise ömrü belirsiz ve boyutu çalışırken belirlenen veriler içindir. Bir kullanıcının yüklediği fotoğraf listesi gibi veriler genellikle heap'te tutulur.
Heap'teki verinin temizlenmesi dile göre değişir. C dilinde malloc ile yer ayırır, free ile geri verirsiniz. Java veya Python'da ise çöp toplama mekanizması kullanılmayan nesneleri bulup kendisi temizler.
Sık yapılan hatalar
Elle yönetilen bellekte üç hata öne çıkar. Bellek sızıntısında ayrılan alan hiç geri verilmez ve program zamanla daha çok RAM tüketir. Serbest bırakılmış bir alanı kullanmaya devam etmek beklenmedik çökmelere neden olur. Ayrılan alanın dışına yazmak ise ciddi güvenlik açıklarına kapı aralar.
Otomatik yönetim bu hataların çoğunu önler ama tamamen ortadan kaldırmaz. Gereksiz yere referansını tuttuğunuz bir nesne, çöp toplayıcılı dillerde de bellekte kalır. Uygulamanızın bellek kullanımı saatler içinde sürekli artıyorsa, dilinizin profil araçlarıyla hangi nesnelerin biriktiğine bakın.
Sıkça Sorulan Sorular
Hangi dillerde bellek elle yönetilir?
C ve C++ gibi dillerde geliştirici belleği elle ayırır ve serbest bırakır. Java, Python, JavaScript ve C# gibi diller ise çöp toplayıcı kullanır.
Rust bellek yönetimini nasıl yapar?
Rust, sahiplik (ownership) adı verilen bir kurallar sistemi kullanır. Derleyici bu kuralları kontrol eder ve belleği çöp toplayıcı olmadan, güvenli biçimde serbest bırakır.