0Pricing
Java Academy · Ders

GC Ayarlama Bayrakları ve JVisualVM Profillemesi

Yığın boyutu bayraklarını ayarlayın, GC günlük kaydını etkinleştirin ve çalışan bir uygulamada yığın kullanımını profillemek için JVisualVM kullanın.

GC Ayarlama Bayrakları ve JVisualVM Profillemesi, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 4 dersten oluşur.

Çöp Toplayıcıyı Neden Ayarlamalısınız?

Varsayılan çöp toplayıcı ayarları birçok uygulama için iyi çalışır, ancak yüksek aktarım hacimli veya düşük gecikmeli iş yüklerinin ayarlanması gerekebilir. Önce ölçün; asla körü körüne ayar yapmayın.

Yığın Boyutu Bayrakları

Başlangıç yığınını (-Xms) ve en büyük yığını (-Xmx) ayarlayın. Üretimde, dinamik yeniden boyutlandırma duraklamalarını önlemek için ikisini eşit ayarlayın. Kullanılabilir RAM'in %60-70'iyle başlayın.

// Example production flags:
java -Xms2g -Xmx2g -XX:+UseG1GC MyApp
// Avoid:
java -Xmx8g MyApp  // initial = 256m, max = 8g → resizing pauses

Genç Nesil Boyutu

Bellek ayırma ağırlıklı uygulamalarda Minor GC sıklığını azaltmak için Young Gen boyutunu artırın. -Xmn veya -XX:NewRatio (Old:Young oranı, varsayılan 2) kullanın.

// Set Young Gen to 1 GB:
java -Xmx4g -Xmn1g MyApp
// Or via ratio:
java -Xmx4g -XX:NewRatio=3 MyApp  // 3GB old, 1GB young

G1 Duraklama Hedefi

G1'e istediğiniz en uzun duraklamayı bildirmek için -XX:MaxGCPauseMillis değerini ayarlayın. G1, hedefi karşılamak için koleksiyon kümesini ayarlar; ancak bu bir hedeftir, kesin bir garanti değildir.

java -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -Xmx8g MyApp
// G1 will try to keep pauses under 100 ms

Çöp Toplayıcı İş Parçacığı Sayısı

-XX:ParallelGCThreads (dünyayı durduran iş parçacıkları) ve -XX:ConcGCThreads (G1/ZGC için eşzamanlı iş parçacıkları) ile paralelliği denetleyin.

// On an 8-core machine:
java -XX:+UseG1GC -XX:ParallelGCThreads=8 -XX:ConcGCThreads=2 MyApp

Çöp Toplayıcı Günlüklemesini Etkinleştirme (JVM 9+)

Çöp toplayıcı olaylarını yakalamak için Xlog çerçevesini kullanın. Uzun duraklamaları, yoğun bellek ayırma dönemlerini ve terfi hatalarını fark etmek için günlükleri çevrimdışı analiz edin.

java -Xlog:gc*:file=gc.log:time,uptime,level,tags:filecount=5,filesize=20m MyApp

Devasa Nesne Uyarısı

Bir G1 bölgesinin %50'sinden büyük nesneler "devasa" kabul edilir; Young Gen'i atlayarak doğrudan Old Gen'e gider. Bu durum parçalanmaya yol açabilir. Büyük nesneleri küçük tutun veya bölge boyutunu artırın.

// Increase G1 region size (range: 1 MB to 32 MB, must be power of 2):
java -XX:+UseG1GC -XX:G1HeapRegionSize=16m -Xmx16g MyApp

JVisualVM'e Genel Bakış

JDK 8 ile birlikte gelen ve daha yeni JDK'lar için indirilebilen JVisualVM, yerel ve uzak JVM işlemlerinin yığınını, çöp toplayıcısını, CPU'sunu ve iş parçacıklarını izlemek için bir grafik kullanıcı arayüzü sağlar.

Uzak Bir JVM'ye Bağlanma

JVisualVM'ye uzaktan bağlanmak için sunucuda JMX'i etkinleştirin. Bu bayrakları hedef JVM'nin başlatma komutuna ekleyin.

// Remote JVM flags:
java -Dcom.sun.management.jmxremote \
     -Dcom.sun.management.jmxremote.port=9090 \
     -Dcom.sun.management.jmxremote.authenticate=false \
     -Dcom.sun.management.jmxremote.ssl=false \
     MyApp

JVisualVM'den Yığın Dökümü Alma

JVisualVM'de işleme sağ tıklayın → "Yığın Dökümü". Döküm, canlı nesneleri, bellekte tutulan boyutları ve başvuruları gösterir. Dökümü SQL benzeri söz dizimiyle sorgulamak için "OQL Konsolu"nu kullanın.

JVisualVM ile CPU Profilleme

Profiler sekmesine geçin ve "CPU"ya tıklayın. JVisualVM yöntemleri araçlandırır ve etkin çağrı yığınlarını gösterir. En fazla zamanı hangi yöntemlerin tükettiğini görmek için profilleyiciyi durdurun.

Java Flight Recorder ve JVisualVM Karşılaştırması

JFR'nin ek yükü daha düşüktür (yaklaşık %1-2) ve üretim için uygundur. Profilleme yapılan JVisualVM'nin ek yükü daha fazladır ve geliştirme için daha uygundur. Üretimde JFR'yi, geliştirme hata ayıklamasında JVisualVM'yi kullanın.

Kısa Sınama

G1 için hedef en yüksek çöp toplayıcı duraklamasını hangi bayrak ayarlar?

Özet

Üretimde -Xms == -Xmx ayarını yapın. G1'i -XX:MaxGCPauseMillis ile ayarlayın. Çöp toplayıcı günlüklemesini Xlog ile etkinleştirin. Geliştirme hata ayıklaması için JVisualVM'yi, üretim profillemesi için JFR'yi kullanın.

Sıkça Sorulan Sorular

“GC Ayarlama Bayrakları ve JVisualVM Profillemesi” dersi ücretsiz mi?

Evet — “GC Ayarlama Bayrakları ve JVisualVM Profillemesi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 4 dersten oluşur.

“GC Ayarlama Bayrakları ve JVisualVM Profillemesi” dersinde ne öğreneceğim?

Yığın boyutu bayraklarını ayarlayın, GC günlük kaydını etkinleştirin ve çalışan bir uygulamada yığın kullanımını profillemek için JVisualVM kullanın. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Java Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“GC Ayarlama Bayrakları ve JVisualVM Profillemesi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. JVM Yığın Bölgeleri ve Nesne Yaşam Döngüsü
  2. GC Algoritmaları: Serial, G1, ZGC, Shenandoah
  3. Bellek Sızıntılarını Algılama ve Düzeltme
  4. GC Ayarlama Bayrakları ve JVisualVM Profillemesi
← Java Academy Sayfasına Dön