JVM’i Anlamak: Garbage Collector

Tuğrul Bayrak
6 min readAug 25, 2019

Java’da bellek yönetimi arka planda JVM ve onun içinde yer alan Garbage Collector(Çöp Toplayıcısı) ile yapılır. Bu aslında Java’yı Java yapan özelliklerden biridir. Çünkü bir geliştirici olarak endişe duymadan yeni nesneler yaratırsınız ve GC sizin için memory allocation ve deallocation işlemlerini yapar. Yani JVM bunu sizin için yönetir. C/C++ gibi dillerde bunun kontrolü sizin elinizdedir. Bu durum yazılımda hata çıkma ihtimalini arttırır ve geliştirme sürecini uzatabilir. Tabi ki donanıma daha yakın ve daha hızlı uygulamalar geliştirmenize de yarar sağlar. Peki Java’da Garbage Collector(Çöp Toplayıcısı)’ı anlamak neden önemlidir? Ben bir yazılım geliştiriciyim. Peki arka planda platformun ne yaptığını neden umursamalıyım? Bu sorunun cevabı aslında oldukça basit. Garbage Collector’ı anlamak daha iyi ve efektif Java uygulamaları yazmak demektir. Yazılımınız içinde gereksiz oluşturduğunuz nesneler bellekte gereksiz yer kaplayabilir belli süre sonra da memory leak problemleri ile karşılaşabilirsiniz. Bunların önüne geçmek için arka planda dönenlerden haberdar olmalı ve efektif kod yazmayı bir alışkanlık haline getirmelisiniz. Garbage Collector’ın çalışma yapısını anladıktan sonra, geliştirdiğiniz yazılımın doğasına göre GC Tuning yapabilir ve yazılıma uygun şekilde optimize edebilirsiniz. Tabiki bu her zaman işe yarayacak diye bir kural yok. Çünkü nispeten bu konular anlaması ve uygulaması biraz daha ileri konular. Şimdi bu yazının konusu olan Garbage Collector’a daha yakından bakalım.

HotSpot JVM(Oracle JVM) Mimarisi

--

--