私はこの2つのうちどれを私のプロジェクトで使用するかを決めようとしています:guavaキャッシュかehcache。軽量のサービスレベルキャッシングソリューションを探しています。 ベンチマークを検索しましたが、何も見つかりませんでした。guavaのキャッシュとehcacheのベンチマーク
ベンチマークがあれば、ここに投稿してください。
乾杯。
私はこの2つのうちどれを私のプロジェクトで使用するかを決めようとしています:guavaキャッシュかehcache。軽量のサービスレベルキャッシングソリューションを探しています。 ベンチマークを検索しましたが、何も見つかりませんでした。guavaのキャッシュとehcacheのベンチマーク
ベンチマークがあれば、ここに投稿してください。
乾杯。
ベンチマークは滑りやすいビジネスです。それはhard to get it rightとeasy to fakeです。あなたのアプリケーションがメタルからすべてのCPUサイクルを奪い取らなければ、パフォーマンスについて心配するべきではありません.Ehcacheとguavaキャッシュは平均的なプロジェクトにとって十分です。
あなたははになるはずですAPIと機能です。たとえば、Guavaのキャッシュは、第2レベルのHibernateキャッシュとして使用することはできません(少なくとも、そのまま使用できます)。 OTOH Ehcacheは、APIと機能の垣根の点でちょっと太ったように成長しましたが、これらは主観的です。トピックに戻って来る
は、グアバのキャッシュはもともと別のプロジェクトから引き出された、
はもはやそのよう
としてサポートされて、私は信じて、concurrentlinkedhashmapはただ一人のプロジェクトであり、運動量のビットを失った(コメントを参照してくださいこのポストの下に)。それにもかかわらず、古いプロジェクトページにはまだConcurrentHashMap
(現在のguavaキャッシュ)のパフォーマンスがConcurrentLinkedHashMap
に近いことが証明されています。私はそれが悪化しないことを願っています。
私はまだCLHMをサポートしていますが、その1人のプロジェクトです。 CLHMはアルゴリズムの基盤とユーザーが重いほど優れていますが、より多くの機能と専用チームのおかげで、Guavaは一般的なケースに適しています。グアバのキャッシュはGoogleブランドのため厳格ではありませんが信頼できるものですが、マイグレーションの単位テストを緩和する厳しいLRUをサポートしているため、パフォーマンスはわずかに悪くなりました(非厳格ではないバグであるという苦情)。前回私がベンチマークしたCLHMは、このペナルティにもかかわらず、Guavaよりもほんの僅かでした。すべてが優れた選択肢です。 –
Guavaは既に私のプロジェクトに含まれているので、キャッシュサポートを使用します。プロジェクトの必要性が増えたら、私は他のライブラリを検討します。 – Raul
今後の参考として、これらの[JMHベンチマーク](https://github.com/ben-manes/caffeine/wiki/Benchmarks)を参照してください。 –