Archive for October, 2011

Java Garbage Collector

Garbage Collector

Bellek yönetimi bir  çok uygulamada kritik öneme sahiptir. Şöyle bir program düşünelim,programınız network üzerinden çok büyük veri okumakta ve bu okuduğu veriyi de hardsikinizdeki veritabanına yazmakta. Genellikle dizayn,veriyi önce memoryde bir yere alıp gerekli işlemi yaptıktan sonra veritabanına yazmak şeklinde olacaktır. Daha sonra ise  geçici olarak tutulan bu verilerin silinmesi gerekir bir sonraki batch’e geçinceye kadar. Bu  ve buna benzer operasyonlar C/C++  gibi  otomatik garbage collector’ının  sağlanmadığı dillerde programcı tarafından  manuel olarak yapılmaktadır.Programı yazarken yapacağınız küçük bir mantık hatası belleği bir miktar usulsüz geri edilmesine veya kaybedilmesine sebep olacaktır.

Buna  memory leak(bellek sızıntısı) denir. Bu işlemin  binlerce kez tekrarlandığını düşünürsek  önemli miktarda bellek kaybına yol açacaktır ve programınız kilitlenip çalışmayacaktır. Manuel olarak bellek yönetimi temiz ve en ince ayrıntısına kadar hesaplanması gereken  kompleks ve önemli bir konudur. Ayrıca  kompleks bir program yazarken  daha fazla effor harcandığı da   bir tartışma  konusudur.

“Java garbage collector” bellek yönetimi  kendisi ototmatik yaparak çözüm sunmaktadır.

Çoğu durumda, herhangi bir bellek yönetimi mantığı eklemek zorunda  kalmaktan sizi kurtarır. Otomatik  garbage collector’ı  hiç bir zaman  tam olarak kontrol edemezsiniz,ister çalışır durumda  olsun ister çalışmasın.

 

Garbage collector’nı JVM  kontrol eder. JVM  garbage collector’ın çalışıp çalışmayacağına karar verir. Java  programınız içerisinden ,JVM’den garbage collector’nı çalıştırmasını isteyebilirsiniz fakat  JVM  sizin bu isteğinizi  her zaman her koşulda yüzde yüz yerine getirir diyemiyoruz.  JVM  genellikle  garbage collector’nı boş bellek azaldığını  anlamaya başladığı zaman çalıştırır. Tecrüblerimiz  göstermiştir ki  bir java programı garbage collector isteğinde bulunduğu zaman,JVM  en kısa sürede buna yanıt vermeye çalışır,ama her zaman garantisi yoktur.

,

Leave a comment