0
リファレンスベースの追い出しでgoogle guavaキャッシュを使用しています。 キャッシュがいっぱいで、その要素が撤回可能とマークされていない場合、何が起こったのだろうか?メモリ不足例外がスローされますか?guavaのキャッシュがいっぱいで、消去可能な要素がないとどうなりますか?
リファレンスベースの追い出しでgoogle guavaキャッシュを使用しています。 キャッシュがいっぱいで、その要素が撤回可能とマークされていない場合、何が起こったのだろうか?メモリ不足例外がスローされますか?guavaのキャッシュがいっぱいで、消去可能な要素がないとどうなりますか?
リファレンスベースのエビクションは、Javaの標準的なGC動作と本質的に同じです。GCは、キャッシュ内のリファレンスの存在を無視します。オブジェクトがスコープから外れた場合(キャッシュ以外の場所)、GC中にキャッシュから追い出されます。キャッシュのすべての要素が他のどこかの範囲にあり、GCedできない場合は、キャッシュを使用していない場合とまったく同じようにメモリの問題が発生します。 JVMが許可するように設定されているより多くのデータをメモリに格納することはできません。参照を回避するキャッシュを使用しても、これは変更されません。
アプリケーションが新しいオブジェクトを割り当てることができない場合、JVMは最終的に 'OutOfMemoryError'をスローします。参照ベースのキャッシュには容量制限が明示されていないため、fullは使用可能な空きメモリがないことを意味します。 –
Guavaのキャッシュには、「evictable」または「evictable」というものはありません。キャッシュには自動追い出しがあるか、そうではありません。そうでなければ、Javaの他のすべてのデータ構造と同様にOutOfMemoryErrorになります。 –