ZGC
Çok büyük heap'lerde düşük pause süresini hedefleyen, concurrent relocation ve colored pointer/barrier teknikleri kullanan HotSpot garbage collector.
ZGC (Z Garbage Collector), HotSpot JVM'de uygulama duraklamalarını düşük tutmayı hedefleyen ve işin büyük bölümünü uygulamayla eşzamanlı yürüten çöp toplama ailesidir.
JVM Çalışma Zamanı Bağlamı
Modern JDK'lerde generational çalışma varsayılan hale gelmiştir. ZGC seçimi yalnız pause hedefiyle değil throughput, CPU headroom ve memory footprint ile birlikte değerlendirilmelidir.
Sürüm ve Runtime Sınırı
Düşük pause süresi sıfır GC maliyeti anlamına gelmez; concurrent work uygulama CPU'suyla kaynak paylaşır.
İlişkili JVM Kavramları
Kaynak
- https://openjdk.org/projects/jdk/25/jeps-since-jdk-21
Sürüm Çizgisi ve Ölçülmesi Gerekenler
ZGC değerlendirmesinde JDK sürümü semantiğin parçasıdır. JEP 439 generational ZGC'yi JDK 21'de tanıttı; JEP 474 ise JDK 23'te generational modu varsayılan yaptı. Dolayısıyla "ZGC kullandım" ifadesi tek başına collector davranışını ve sürüm özelliklerini yeterince tanımlamaz.
Düşük stop-the-world pause hedefi, toplam maliyetin düşük olduğu anlamına gelmez. Concurrent marking/relocation, barrier'lar ve GC thread'leri uygulamayla CPU ve bellek bant genişliğini paylaşır. Sağlıklı karşılaştırmada yalnız maksimum pause değil; p50/p95/p99 pause, allocation rate, uygulama throughput'u, CPU kullanımı ve heap/working-set birlikte ölçülmelidir. Tail Latency ile Allocation Rate bu yüzden collector seçiminden ayrı düşünülemez.