SORU
22 Mayıs 2012, Salı


GC Java: neden iki bölge kurtulan?

Sun/Oracle JVM için, GC algo Eden bir bölge ve iki hayatta kalan bölgelere yeni nesil bölen okudum. Merak ettiğim şey, neden iki kurtulan bölgeler sadece bir tane de değil mi? Algo gidip geliyor Eden ve sadece biri hayatta kalacak bölgesi (şu anda iki kurtulan bölgeler arasında yaptığı gibi) arasında kalabilir; yoksa bu yaklaşımın herhangi bir eksiklik var mı?

CEVAP
22 Mayıs 2012, Salı


Mozilla Firefox ... ... GC uygulama önerdiğiniz gibi çalışır, sadece tek eden ve tek kurtulan bir boşluk inanıyorum, ama benden alıntı yapma.

Noktasal JVM iki survivor boşluk nedeni parçalanma ile başa çıkmak için ihtiyacı azaltmak için. Yeni nesneleri eden alanı tahsis ediliyor. Tüm iyi ve güzel. Bu tam bir GC gerekir, bayat nesneleri öldürmek ve eski kuşağa terfi etmeden önce bir süre daha olgun onlar kurtulan bir mekan, canlı olanları taşıyın. Hala o kadar iyi. Bir dahaki sefere, bir sorunumuz var ama cennet mekan kalmadı,. Bir sonraki GC gelir ve eden ve kurtulan alanı hem de biraz boşluk temizler, ama boşlukları bitişik değil. Çok daha iyi

  1. GC tarafından temizlenmiş olan survivor alan deliklerin içine eden kurtulan sığdırmak için deneyin?
  2. Survivor alan tüm nesneleri ortadan kaldırmak parçalanma ve . Shift ^em>sonrakurtulanlar taşınmak?
  3. Sadece "boşver, taşınıyoruz her şeyi etrafında her neyse," tümünü kopyala sağ kurtulan iki boşluk içine tamamen ayrı alan ikinci kişi survivor boşluk bırakarak--böylece seni bir temiz eden ve kurtulan alanı nereye sen-ebilmek tekrar dizide sonraki GC?

Sorusuna güneş cevabı açıktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • Microsoft Help & Training Videos

    Microsoft He

    31 Mart 2009
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006