SORU
5 Kasım 2008, ÇARŞAMBA


Java bir SoftHashMap var mı?

Java bir WeakHashMap olduğunu biliyorum.açıklama, ama sadece bu Harita tarafından başvurulan her şey için WeakReferences kullandığından beri, başvurulan nesneleri sonraki GC döngüsü kaybolmaz. Eğer Sabit bağlı olmadan tekrar talep edilecek çok büyük olasılıkla rastgele veri önbelleği, isterseniz neredeyse işe yaramaz geri kalan zamanda yani. En iyi çözüm yerine SoftReferences kullanan bir harita olurdu, ama Java RT Paketinde bulamadım.

CEVAP
5 Kasım 2008, ÇARŞAMBA


Düzenle (Haz. 2012):

Şu anda en iyi çözüm muhtemelen 13.0 Cache sınıflar Guava's Wiki - bunu kullanacağım ne açıkladı Guava çıkıyor. Java uzmanı Jeremy Manson açıkladığı gibi bile SoftHashMap (CacheBuilder.newBuilder().softKeys()) bina destekler, ama ne istediğinizi muhtemelen değildir, bağlantıyı aşağıda bulabilirsiniz ().


I know of (Kas değil. 2008), ama sen net SoftHashMap Bazı uygulama bulmak.

Bunun gibi: SoftHashMap this one.


Düzenle (Haz. 2009)
Matthias yorum bahseder gibiGoogle CollectionGoogle Guava MapMaker SoftReferences kullanın:

ConcurrentMap oluşturucu, bu özelliklerin herhangi bir kombinasyonu sağlamak:

  • yumuşak ya da zayıf anahtarlar
  • yumuşak ya da zayıf değerler
  • son kullanma zamanlı, ve
  • isteğe bağlı değerleri hesaplama.

this thread başka bir JSR166y aday belirtildiği gibi:

jsr166y.ConcurrentReferenceHashMap

Google uygulanması tahliye girişler için bir arka plan iş parçacığı üzerinde kullanır) için alternatif eşzamanlı başvurusu bir harita sağlar


Düzenle (Ağustos 2012)

Google uygulanması girişleri zamanlanmış bitiş istenen sadece bir arka plan iş parçacığı kullanır. Özellikle, sadece ayrı bir arka plan iş parçacığı sahip olarak çok zorlayıcı değildir java.util.Timer kullanır.

Jeremy Manson, herhangi bir önbellek için, bu özellik SoftReference tehlikeleri önlemek için kullanmanızı önerir: http://jeremymanson.blogspot.de/2009/07/how-hotspot-decides-to-clear_07.html

Apache Commons, org.apache.commons.collections.map.ReferenceMap; zamanlanmış temizleme desteklemiyor yani başka bir uygulama var, ama anahtarları eşitlik ile kimlik ya kıyasla gerekip gerekmediğini seçimi destekler. Ayrıca, bu uygulama değil, eş zamanlı - senkronize yapılabilir, ama daha birden çok iş parçacığı erişir altında çalışır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andony5589

    andony5589

    7 Aralık 2011
  • apenney888

    apenney888

    27 EKİM 2010
  • sghaff1

    sghaff1

    23 Mart 2009