2012-05-31 11 views
5

maxElementsInMemoryを実際に使用されている値よりも大幅に高く設定するとパフォーマンスに影響があるかどうかを知りたいだけですか?例えば、10,000 maxとのみ100ehcache設定でmaxElementsInMemoryが大きすぎるとパフォーマンスが低下する

ehcache.xml

<defaultCache 
    eternal="false" 
    overflowToDisk="false" 
    maxElementsInMemory="10000" 
    timeToIdleSeconds="7200" 
    timeToLiveSeconds="0"/> 

コンテキスト使用して:私は休止状態とにehcacheを使用していますが、私はテーブルのすべてのレコード(すべてのエンティティ)がキャッシュされたいの。ある顧客から別の顧客に、そのテーブルのレコード数が異なるため、正確な最大値を設定することは困難です。

ありがとうございます!

マーク

答えて

3

いいえ、ありません。これはちょうど最大値です。あなたのキャッシュが100アイテムしか保持していない場合は、100要素を持つマップのコストを支払うことになります。上限はここでは何もしません。

このような選択肢を正当化することは困難ですが、はるかに高い上限(下は単純ConcurrentHashMap)を安全に使用できます。

+0

右クリック。しかし、この最大値をConcurrentHashMapの初期容量を設定するために使用するのではないでしょうか?これは影響を与えるだろうか? – Marc

+0

@Marc:EhCacheコードベースをすばやく検索すると、マップを初期化するために最大値を使用しないことがわかります。それがあったとしても、「initialCapacity」が大きければ性能に悪影響を及ぼさず、より多くのメモリしか使用しません(これはパフォーマンスを損なうでしょうが、私の要点が分かります)。 –

関連する問題