java.util.Map
'un disk üzerinde uygulanması için arıyorum. Çok süslü bir şey değil, sadece bir dizine veya dosyaya gösterebileceğim ve içeriğini bir şekilde seçebileceği bir şekilde seçebileceğim bir şey. Böyle bir şey bilen var mı?Java'nın Map'in iyi disk üstü uygulamaları var mı?
cevap
Disk-Backed-map projesine bakabilirsiniz.
Java
önemli değer çiftleri sayıda depolanması için bir diskin destekli harita uygulama sağlamak küçük bir kütüphane de, bir disk destekli ilk uygulayan bir kütüphane. Harita uygulamaları (HashMap, HashTable), çok basit anahtar/değer çiftleri için yaklaşık 3-4 Milyon tuşa/GB belleğe sahiptir ve çoğu durumda limit çok daha düşüktür. DiskBacked haritası, key/value çiftlerinin büyüklüğüne bakılmaksızın, 16Million (64bit JVM) 'yi 20Million (32bit JVM) anahtarlara/GB'ye kaydedebilir.
Basit bir EHCache uygulaması kullanabilirsiniz? EHCache hakkında 'un gerçekten çok iyi uygulanması :-)
Gerçek bir Map örneğini serileştirme/serileştirme kararını aldınız mı?
verileri ısrar key-object
bazlı yapılar için arıyorsanız o zaman NoSQL veritabanları çok iyi bir seçimdir. Bunlardan bazılarının MongoDB veya Redis ölçeklerini bulup büyük veri kümeleri için performans gösterdiğini ve karma tabanlı görünümler dışında ilginç sorgulama ve işlem özellikleri sağladığını göreceksiniz.
Özünde bu tür sistemler bir Harita uygulamasıdır. Ve onları köprülemek için java.util.Map
'u uygulayan kendi bağdaştırıcınızı uygulamak çok karmaşık olmamalı.
, ben kullandım, ve bunun gibi bugüne kadar
MapDB (mapdb.org) tam aradığınız şeyi öğrenirsin. Disk destekli TreeMap ve HashMap'in yanı sıra size başka koleksiyon türleri sunar.
Bu haritalar ayrıca iş parçacığı için güvenli ve gerçekten iyi bir performansa sahip.
Kağıt üzerinde güzel görünüyor, ama benim deneyimim ne yazık ki yavaş yavaş ve hiç güvenli değil ('transactionEnable' ile bile). – dagnelies
Chronicle Map bu soruna modern ve the fastest çözümdür bakın. Bu, ConcurrentMap
arabirimini uygular ve verileri diske yazdırır (başlık altında, Chronicle Map'in belleğini bir dosyaya eşleyerek yapılır).
- 1. Gerçek dünya SharpKit Uygulamaları var mı?
- 2. IQueryable'in yaygın olarak kullanılan uygulamaları var mı?
- 3. Genel amaçlı CRUD istemci uygulamaları var mı?
- 4. Regex en iyi uygulamaları
- 5. Fragman en iyi uygulamaları
- 6. MATLAB programlama en iyi uygulamaları
- 7. TFS ödeme en iyi uygulamaları
- 8. İyi bir web.config editörü var mı?
- 9. Herkes için en iyi uygulamaları
- 10. İyi Entity Framework örnek uygulamaları?
- 11. Spark'ım tamamlanmış uygulamaları neden hala işçimin disk alanını kullanıyor?
- 12. iPhone ses uygulamaları için herhangi bir ses var mı?
- 13. Ölçeklendirilebilir web uygulamaları (Java/Ajax/REST) hakkında iyi kitaplar var mı?
- 14. SQL Server şeması en iyi uygulamaları
- 15. Bir galerinin en iyi JavaScript uygulamaları nelerdir?
- 16. exe wraper açık kaynağında iyi bir swf var mı?
- 17. JavaFX için iyi bir MVVM/MVP/MVC çerçevesi var mı?
- 18. objektif-c en iyi uygulamaları günlüğe kaydetme
- 19. . Net çözüm subversion en iyi uygulamaları?
- 20. SWT uygulamaları geliştirmek için bir stil kılavuzu var mı?
- 21. .NET arabirim uygulamaları için varsayılan birim sınama kitaplığı var mı?
- 22. İyi bir UITabBarController Örneği var mı?
- 23. iyi bir anti-desen kaynağı var mı?
- 24. İyi bir SimpleSAMLphp SLO örneği var mı?
- 25. .Net için iyi ayrıştırma kütüphaneleri var mı?
- 26. MSXML'den daha iyi bir IDOMImplementation var mı?
- 27. İyi bir Perl şablon scriptiniz var mı?
- 28. Ice4j için iyi dersler var mı?
- 29. Qt + Lisp'in iyi bir uygulaması var mı?
- 30. Django, en iyi uygulamaları zincirleme/yönlendirmeyi görüntüleme
Bu, web sitelerinden doğru bir alıntıdır, ancak yanlış olması gerekir. 64-bit JVM'nin 32-bit JVM'den daha küçük koleksiyonlara sahip olması mantıklı değildir. –