GC ayarı
- Java kursu
- Uzman
- Ders 33/46
- 5 dk
G1 ve ZGC çöp toplayıcı ayarlarını öğrenirsin.
Çöp toplayıcılar
Java'da belli başlı çöp toplayıcılar (GC) vardır. G1 Java 9'dan beri öntanımlıdır; dengeli verim ve gecikme sunar. ZGC ve Shenandoah düşük gecikme için eşzamanlı taşıma yapar; büyük yığında bile milisaniye altı duraklamalar hedefler.
GC seçimi -XX:+UseG1GC, -XX:+UseZGC ya da -XX:+UseShenandoahGC ile yapılır. İş yüküne göre verim mi yoksa gecikme mi öncelikliyse ona göre seçilir.
yığın ve GC ayarı
Yığın boyutu -Xmx (en büyük) ve -Xms (başlangıç) ile ayarlanır. Küçük yığın sık GC tetikler; çok büyük yığın ise uzun duraklamalara yol açabilir. -XX:MaxGCPauseMillis=200 gibi bayraklarla hedef durakma süresi verilir.
Gecikme duyarlı uygulamalarda ZGC ya da Shenandoah, verim öncelikli toplu işlerde G1 tercih edilir. Ayarlamadan önce JFR ile gerçek yükü ölçmek gerekir.
Uygulama GcConfig sınıfını yaz
class GcConfig tanımla; static String config(String gc, int heapMb) metodu "-XX:+Use" + gc + " -Xmx" + heapMb + "m" döndürsün. main içinde System.out.println(config("G1GC", 2048)); yazdır.
Başlangıç kodu
// GcConfig sınıfını tanımla: config metodu bayrak dizisi üretsin
// main: G1GC ve 2048MB için yapılandırmayı yazdırÖrnek çözüm
class GcConfig {
static String config(String gc, int heapMb) {
return "-XX:+Use" + gc + " -Xmx" + heapMb + "m";
}
public static void main(String[] args) {
System.out.println(config("G1GC", 2048));
}
}Beklenen çıktı
-XX:+UseG1GC -Xmx2048m
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 çöp toplayıcıları eşleştir
| Kavram | Anlamı |
|---|---|
G1 |
Öntanımlı toplayıcı |
ZGC |
Düşük gecikme |
Shenandoah |
Eşzamanlı taşıma |
-Xmx |
En büyük yığın |
2 GC bayrağını tamamla
-XX:+Use____ -Xmx2g
-XX:+UseG1GC -Xmx2g
Açıklama: -XX:+UseG1GC G1 toplayıcıyı seçer.
3 Düşük gecikme için hangi GC tercih edilir?
- Serial GC
- ZGC Doğru cevap
- Parallel GC
- G1 GC
Açıklama: ZGC eşzamanlı taşıma ile çok kısa duraklamalar hedefler.