基本: LRU キャッシュ アルゴリズム

1. 展望

        Androidの開発プロセスでキャッシュ機能を使用する場合、一般的にメモリやストレージの容量には限りがあるため、新しい要素を挿入して使用するスペースが限られている場合には、古い要素を削除する必要があります。

2、LRUキャッシュ        

        これはキャッシュ削除戦略であり、フルネームは最も最近使用されていないことを意味します。

        主な考え方:データが最近アクセスされた場合、将来もアクセスされる可能性があります。一定のしきい値に達すると、キャッシュされたデータの量が大きくなりすぎないように、最近アクセスされていないデータが削除されます。

3. 実施方法

  1. リンクされたリストを使用して達成する
  2. 新しいデータが追加されました。チェーンヘッドを挿入します
  3. キャッシュで使用される場合、フェッチされたデータをチェーンの先頭に移動します
  4. リンクされたリストがいっぱいになると、チェーンの最後のデータが破棄されます。

4.Lruキャッシュ  

画像キャッシュの削除戦略

  1. コンストラクターを通じて最大容量制限を設定する
  2. LinkedHashMap によるデータ ストレージ
  3. get メソッドを通じてキャッシュを読み取り、synchronized を通じてスレッド セーフ コード ブロックをロックして、ここで読み取り操作のスレッド セーフを確保します。
  4. put メソッドでキャッシュを書き込み、Map にデータを配置します。前のキー位置にデータがある場合は、現在のサイズから元のサイズを減算して put サイズを計算します。
  5. その後、 trimToSize メソッドによって空間が再編成され、サイズが maxSize 未満になるまで、remove メソッドによって Map 内の以前の要素が継続的に削除され、空間の再編成が実現されます。

 5、 DiskLruCache

ディスク上に LRU ストレージを実装するオープンソース ライブラリ

おすすめ

転載: blog.csdn.net/weixin_42277946/article/details/130220350