2012-03-24 35 views
7

Sadece merak ediyorum. Gecikme problemini ele alan yeni G1GC hakkında bir şeyler duydum. RTSJ'yi kullanmak istemiyorum/istemiyorum. Sizin gibi sesler peşinJava'da, eşzamanlı olarak% 100 çalıştırarak gecikmeyi (durdurulan dünyayı) tanıtmayan bir GC var mı?

+0

AONIX deterministik çöp toplama teknolojisi http kullanan PERC denilen tarafından Belki Askeri dereceli sert gerçek zamanlı Java içine bakmak gerekir JDK son G1 Çöp toplama deneyebilirsiniz: // www .atego.com/products/aonix-perc/daha fazlası için: Real-time Java http://en.wikipedia.org/wiki/Real_time_Java – ecle

cevap

2

herhangi sıfır duraklama çöp toplayıcılar vardır sanmıyorum. Ancak genel olarak CMS gibi düşük duraklatmalı bir toplayıcı söz konusu işi yapacak. duraklar ve duraklama azalma ile

problemler aşağıdaki gibidir:

  • sıfır bekleme süresi (ya da hemen hemen sıfır ara) toplama rejimi önemli ölçüde normal program yürütme artar giderleri. Bu, özellikle Java gibi çok iş parçacıklı dillerle geçerlidir. uygulama çok fazla çöp oluşturuyorsa çöp toplama yapmak için özel bir konu ya da konuları kullanmak

  • Düzenleri gömülmek alabilirsiniz.

  • Uygulamanın bellek kullanım alışkanlıkları çok "topaklı" ve/veya yeterli fiziksel ve sanal belleğiniz yoksa, herhangi bir GC şeması size zayıf performans verecektir.

+1

pauseless GCler vardır ([Azul'un] (http://www.azulsystems.com/products/zing/faq#pauseless) bir sunucu tarafı JVM olarak ifade edilmektedir, örneğin), Oracle JVM kendisi değil kesinlikle ancak. – ecle

+0

İlginç okuma duraklattım/pauseless GCS'de konuyu görüşmek yorumlarla tespit edildi: http://blogs.forrester.com/john_r_rymer/10-06-21-why_im_worried_about_javas_future – ecle

+0

@eee - Bunu gezdirdim. Ama onun JVM başına 2Gb kısıtlaması ile ne konuştuğunu anlamıyorum. 64-bit HotSpot JVM'ler uzun zamandır etrafta ... –

6

yılında

Teşekkür CMS GC — concurrent mark sweep arıyoruz.

enter image description here

(kaynak: https://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf, s.12)


Aralık 2015 güncellemesi: Azul'un "pauseless" GC ilginizi çekebilir. Daha fazla bilgi için Explanation of Azul's "pauseless" garbage collector'a bakın.

+0

En son kontrol ettiğim zaman, CMS bile dünyadaki gecikmeleri yaşadı. – JohnPristine

+0

Hm. AFAIK, tüm JVM GC'leri buna sahip - Ben, dünyayı durdurulamayan bir GC yazmak için teorik olarak bile mümkün değildir. CMS GC sadece bir _shorter_ stop-the-world'a sahip. –

+0

+1 güzel diyagramı. – Kevin

7

Sen Zing JVM gibi bir şey de ilginizi çekebilir.

Azul sistemleri düşük gecikmeli JVM ayarlama içine çaba koyduk. Bunun nasıl yapıldığını açıklayan bazı ilginç teknik makaleler olduğuna inanıyorum.

+0

Azul, sunucu tarafı JVM olarak Zing JVM'yi hedefler. – ecle

1

Sen 7.

İlgili konular