2

Ehcacheを使用すると、Java アプリが 2.5 日動作した後、この統計が得られます

cacheHits:  31185262, approximate 131 per sec
cacheMisses:    4642979, approximate 19  per sec
evictedCount:   4106931, approximate 17 per sec

最後の時間は次のようになります

cacheHits:  60 per sec
cacheMisses:    57 per sec
evictedCount:   53 per sec

キャッシュのサイズ = 400000、アイテムは期限切れになりません。

なぜそれが起こるのですか?

4

2 に答える 2

4

私は原因を見つけたと思います。

少し前に、ehcache を 1.6.xx から 1.7.xx にアップグレードしました。彼らがエビクトアルゴリズムの実装を変更したことに気づきませんでした。現在は次のように動作します: ランダムな 15 個のキーを選択し (!、ヒューリスティックを使用しますが、それでもランダムです)、対応する要素を見つけ、選択した要素から最後に最近使用された要素を選択します。(クラスを見た後、自分で理解できますMemoryStore)。その後、それが非常にうまく機能しないことは驚くことではありません。

良いニュースは、プロパティ "net.sf.ehcache.use.classic.lru"=true を設定することで、古い実装を使用できることです。私がそれをした後、私の問題は消えました

于 2010-02-25T21:33:07.233 に答える
1

他のCache Eviction Algorithmsを参照してください。キャッシュ置換ポリシーも参照してください。

于 2010-02-22T13:08:53.750 に答える