Üretimde Java G1 çöp toplama
Varsayılan olarak yeni G1 çöp toplama kullanacak Java 7 Java büyük yığın "GC duraklama zamanları?" yıkıcı sözde olmadan bir büyüklük sırası işlemek mümkün olacak beri Herkes aslında senin deneyimlerin ne üretim G1 uygulanması.
Gerçekten uzun zamandır gördüğüm tek zaman GC adil olmak gerekirse, çok büyük yığınlar, bir iş istasyonu oranla çok daha fazla duraklar. Sorumu açıklığa kavuşturmak için; G1 GB yüzlerce kümeler kapısı açılacak mı? TB?
CEVAP
Ağır bir uygulama ile bunu test ettik: 60-70GB yığın için ayrılan herhangi bir zamanda, 20-50 GB ile. Uygulamalar bu tür ile, sizin kilometre değişebilir demek yetmiyor. Linux üzerinde olduğunu GÖRDÜM 1.6_22 koşuyorum. Küçük versiyonları-1.6_20, rastgele NullPointerExceptions neden G1 hataları vardı önce önemlidir.
Pause hedef içinde çoğu zaman ver tutma konusunda çok iyi olduğunu buldum. Varsayılan (0.1 saniye) 100 MS civarında bir duraklama görünüyor, ve bunun yarısı (-XX:MaxGCPauseMillis=50) yapmak için söylüyorum. Gerçekten düşük oluyor ancak bir kez, bellek ve durdurun dünyayı çöp dolu bir koleksiyon panik yapar. 30 saniye ile 2 dakika arasında sürer 65GB. (CPU sayısı muhtemelen hiç fark etmez; muhtemelen bus Hızı ile sınırlı.)
CMS varsayılan sunucu GC, ama web sunucusu ve gerçek zamanlı diğer uygulamalar için de olması gereken değildir) ile karşılaştırıldığında, tipik çok daha tahmin edilebilir ve çok daha kısa yapılabilir duraklar. Şimdiye kadar büyük duraklar için CMS ile daha iyi bir şans sahip değilim ama bu rastgele olabilir; onları sadece birkaç kez her 24 saatte görüyorum. Bir anda üretim ortamında daha uygun, ama muhtemelen G1 olacak emin değilim. Eğer Oracle eğer bu ayar varsa tutar, G1 sonuçta kesin kazanan olacak sanıyorum.
Eğer mevcut çöp toplayıcıları ile ilgili bir sorun yaşıyorsanız, G1 şu an düşünmek için bir sebep yok. Eğer düşük gecikmeli bir uygulama, bir GUI uygulaması olarak çalıştırıyorsanız, G1 muhtemelen doğru seçimdir, MaxGCPauseMillis çok düşük ayarlanmış. Eğer çalıştırıyorsanız toplu mod, G1 satın değil bir şey uygulama.
Java bir Toplama filtresi için en iyi ...
Java zorlayarak, Çöp Toplama?...
Neden't Java Göster Toplama uzanı...
Toplama ve Java Listesinde arasındaki ...
Java Çöp Toplama Günlük iletileri...