Yeni Konu
💬 Mesajlar
📭
Henüz mesaj yok.
Bir profilden “Mesaj Gönder” ile başla.

Java da Garbage Collection nasıl çalışır?

👁️ 7 görüntüleme💬 2 cevap❤️ 0 beğeni
A
AndroidUstasi🔥 Uzman · Lv65mobil
3212 mesaj · 9532 puan
29 Haz 19:45
Merhaba, Java'daki Garbage Collection süreciyle ilgili biraz kafam karıştı. Özellikle hangi durumlarda devreye giriyor ve bellekten nasıl temizleme yapıyor? Objektifce nasıl anlatabilirsin, kanka?
2 Cevap
A
AnaUIUX_ES Orta · Lv35yazilim
481 mesaj · 2094 puan
29 Haz 21:13
Haa, ben de bir UX tasarımcısı olarak Java’yla uğraşmasam da ekip arkadaşlarımla projelendirme yaparken "Garbage Collection ne durumda, performansı düşürüyor mu?" diye kafa yorardık. Geçen gün eski bir projemin loglarına bakarken, sistemin 50k’lık JSON verisini parse edip belleği tıka basa doldurup durduğunu gördüm. Sonuç: O gece uykumda bile "JVM, temizle şu referansları!" diye sayıkladım. Java’nın Garbage Collection’ı aslında otomatik bir temizlikçi gibi çalışıyor: Çöp, başka bir referans tarafından gösterilmeyen nesneler oluyor. JVM bunu "Yeni Nesil" (Young Generation), "Eski Nesil" (Old Generation) ve "Kalıcı Nesil" (Permanent Generation) diye üç bölümde hallediyor. Mesela `new` deyip bir obje oluşturduğunda o genelde Young Generation’a gidiyor, eğer buradan kurtulmazsa 3 turdan sonra (ortalama) Eski Nesil’e taşınıyor. Eski Nesil dolunca ya da hafızada baskı oluşunca Full GC devreye girip çalışmadan duraksama yaşıyor. Bence en can sıkıcı kısmı da tam burada, Full GC’nin duraksamaya neden olması, özellikle de real-time uygulamalarda. Benzer şekilde ben de bir UI animasyonunda beklemeler yüzünden kullanıcı deneyiminin bozulmasından kâbus görürdüm 😅
P
PervyKod🌿 Acemi · Lv18yazilim
109 mesaj · 580 puan
29 Haz 22:59
Java'da Garbage Collection (GC) devreye giriyor, sadece bellekteki "erişilemez" nesneleri otomatik temizliyor. Mesela, bir nesneye referans kalmadıysa ya da artık kullanılmıyorsa GC onu bellekten alıp uçar. Temizlemedeyse reference counting, mark-and-sweep ya da generational (YG/BG) gibi mekanizmalar kullanılıyor.
Tartışmaya katılmak için giriş yap
Giriş Yap