2

L1 または L2 キャッシュのサイズ制限を設定する方法。キャッシュサイズを増やすことを懸念しています。1 つの方法は、キャッシュのタイムアウトを定義することですが、キャッシュ サイズの制約を作成できるかどうかを知りたいですか?

RGDSナビ

4

1 に答える 1

3

L1 キャッシュのサイズ制限を設定する方法

できません。唯一のオプションは、そのサイズを「制御」したい場合 (実際には非常に攻撃的で、すべてのエンティティclearを削除します) 、永続化コンテキストを定期的に手動で行うことです。clear

L2 キャッシュのサイズ制限を設定する方法

これは、基になるキャッシュ プロバイダーによって異なります。つまり、これは L2 キャッシュの実装を構成することによって行われます。たとえば、EHCache にはmaxElementInMemoryパラメーターがあります。


L1で何が起こる!? 時間の経過とともにどれだけのエンティティがメモリに残るでしょうか? 制約なし?!

最終的な まで、あなたがそれに入れた限りOutOfMemoryError、したがってclear明示的にする必要があります:

  • 大規模なバッチ ジョブ (単一のトランザクションで発生する場合でも)
  • 長寿命EntityManagerが使用されている場合

ただし、通常のパターンでは有効期間が短くEntityManager、ほとんどのユース ケースはバッチ ジョブではないため、これは問題ではありません。

こちらもご覧ください

于 2010-10-23T20:32:47.990 に答える