CodeGym/Java Kursu/Modül 3/Java'da bir çöp toplayıcı seçme

Java'da bir çöp toplayıcı seçme

Mevcut

7.1* Doğru çöp toplayıcı nasıl seçilir

Uygulamanızın katı gecikme gereksinimleri yoksa, uygulamayı çalıştırmanız ve doğru toplayıcıyı JVM'nin kendisinin seçmesine izin vermeniz yeterlidir.

Çoğu durumda, varsayılan ayarlar iyi çalışır. Gerekirse, performansı artırmak için yığın boyutunu ayarlayabilirsiniz. Performans hala beklendiği gibi değilse toplayıcıyı uygulamanızın gereksinimlerine uyacak şekilde değiştirmeyi deneyin.

  • sıralı _ Uygulama küçük bir veri kümesine sahipse (yaklaşık 100 MB'a kadar) ve/veya herhangi bir gecikme gereksinimi olmadan tek bir işlemci üzerinde çalışacak.
  • paralel . Öncelik, uygulamanın en yüksek performansıysa ve gecikme gereksinimi yoksa (veya bir saniye veya daha fazla duraklamalar kabul edilebilirse).
  • CMS/G1 . Yanıt süresi genel aktarım hızından daha önemliyse ve çöp toplama duraklamaları bir saniyeden kısa olmalıdır.
  • . _ Yanıt süresi yüksek öncelikliyse ve/veya çok büyük bir yığın söz konusuysa.

7.2* Çöp toplama için öneriler

Manuel tetikleyicilerden kaçının

Çöp toplamanın temel mekanizmalarına ek olarak, Java'daki bu işlemle ilgili en önemli noktalardan biri, deterministik olmamasıdır. Yani, tam olarak çalışma zamanında ne zaman gerçekleşeceğini tahmin etmek imkansızdır.

System.gc() veya Runtime.gc() yöntemlerini kullanarak, çöp toplayıcıyı başlatmak için kodunuza bir ipucu ekleyebilirsiniz, ancak bu onun gerçekten çalışacağını garanti etmez.

Analiz araçlarını kullanın

Uygulamanızı çalıştırmak için yeterli belleğiniz yoksa, yavaşlamalar, uzun çöp toplama süreleri, "dünyayı durdurma" olayları ve sonunda yetersiz bellek hataları yaşarsınız. Bu, yığının çok küçük olduğunu gösterebilir, ancak uygulamada bir bellek sızıntısı olduğunu da gösterebilir.

Yığın kullanımının süresiz olarak büyüyüp büyümediğini görmek için jstat veya Java Flight Recorder gibi bir izleme aracı kullanabilirsiniz, bu da kodda bir hataya işaret edebilir.

Varsayılan ayarları tercih et

Küçük, bağımsız bir Java uygulamanız varsa, muhtemelen çöp toplamayı ayarlamanız gerekmez. Varsayılan ayarlar size iyi hizmet edecektir.

Özelleştirmek için JVM işaretlerini kullanın

Java'da çöp toplamayı ayarlamak için en iyi yaklaşım, JVM bayraklarını ayarlamaktır. Bayraklar, çöp toplayıcıyı (örneğin, Seri, G1 vb.), yığının başlangıç ​​ve maksimum boyutunu, yığın bölümlerinin boyutunu (örneğin, Genç nesil, Eski nesil) ve daha fazlasını ayarlamak için kullanılabilir. Daha.

Doğru musluğu seçin

İlk ayarlar açısından iyi bir kılavuz, özel uygulamanın doğasıdır. Örneğin, eşzamanlı çöp toplayıcı verimlidir, ancak genellikle "dünyanın durması" olaylarını gündeme getirerek, uzun duraklamaların kabul edilebilir olduğu dahili işleme için onu daha uygun hale getirir.

Aynı zamanda, CMS çöp toplayıcı gecikmeyi en aza indirecek şekilde tasarlanmıştır, bu da yanıt vermenin önemli olduğu web uygulamaları için idealdir.

Yorumlar
  • Popüler
  • Yeni
  • Eskimiş
Yorum bırakmak için giriş yapmalısınız
Bu sayfada henüz yorum yok