Memory Leak

Türkçe karşılığı "Bellek Sızıntısı" olarak bilinen bu durum, bir yazılımın kullandığı belleği işletim sistemine geri vermemesinden kaynaklıdır. Normalde biz bir programın ihtiyaç duyduğunda işletim sisteminden aldığı belleği, ihtiyacı bittiğinde ( örneğin programı kapattığınızda veya servisi durdurduğunuzda vb ) geri vermesini bekliyoruz, ancak bu belleği vermeyerek sürekli bir ram kullanımı ve bunun sonucu olarak işletim sisteminde performans sorunlarına neden olan bir olaydır.

Bu sorunu tespit etmek için sysinternals araçlarından biri olan RAMMAp veya PAL kullanabilirsiniz.


 “Memory leak”, programın kullandığı hafıza ile işi bittiği halde ilgili hafıza bloğunu serbest bırakmaması durumudur. Bu durum;

  • Gerçekte kullanılmayan hafıza bloklarının referans edilmeye devam edilmesinden veya
  • Native resource’ların düzgün bir şekilde serbest bırakılmamasından

kaynaklanmaktadır. Zaman içerisinde programın sürekli hafıza kullanması, fakat kullandığı hafızayı işi bittiğinde bırakmaması, memory leak’in giderek büyümesine bundan dolayı yeterince uzun süre çalışan uygulamalarda sistem kaynaklarının kritik miktarlarda tüketilmesine ve uygulamanın hata verip kapanmasına sebep olmaktadır.