Android 應用開發】LruCache 簡介

      網友投稿 973 2022-05-30

      文章目錄

      LruCache 應用場景

      LruCache 算法原理

      LruCache 實現

      LruCache 參考

      1. 緩存需求 :

      處理大量數據時 , 為了提升性能 , 需要對其中的部分數據進行緩存 ;

      涉及到使用緩存 , 和刪除內存緩存操作 ,

      使緩存的數據大小保持在一個穩定的水平 ;

      2. 數據寫入緩存 :

      當需要使用某個數據時 , 將該數據寫入緩存 ,

      此時先對內存使用情況進行一次判定 ;

      如果內存不足 , 需要移除緩存數據中的部分內容 , 然后再將數據寫入緩存 ;

      當然 , 如果緩存內存足夠 , 直接寫入緩存即可 ;

      3. LruCache 引入 :

      那么如何確定刪除緩存中的哪些數據呢 , 這里就需要用到 LruCache 了 ;

      LRU ( Least Recently Used 最近最少使用 ) 算法 :

      內部維護了一個固定大小的隊列 ( 先進先出 ) ;

      放入元素時根據不同的情況執行不同的策略 ;

      1. 緩存中是否有該元素 :

      如果緩存中有該元素 , 那么將該元素放到隊列的隊頭 ;

      2. 緩存中沒有該元素 :

      如果緩存中沒有改元素 , 那么需要插入該元素 ;

      3. 緩存空間是否已滿 :

      如果緩存空間滿了 , 需要將隊尾元素刪除 , 將元素放在隊首 ;

      4. 緩存空間沒有滿 :

      如果緩存空間沒有滿 , 直接將元素放在隊首 ;

      緩存隊列中 ,

      隊尾的元素就是最近最少使用的元素 ,

      因為其一旦使用就會提升到隊首 ,

      因此當緩存滿了以后 , 就刪除隊尾的元素 ;

      1. Android 中的 LruCache :

      【Android 應用開發】LruCache 簡介

      其緩存空間就是一個 LinkHashMap 鏈表 ,

      當調用 put 方法向其中放入新元素時 ,

      就會判斷這個 LinkHashMap 鏈表是已滿 ,

      如果沒有空間 , 就將最后一個最近最少使用的元素刪除 ;

      2. LinkHashMap 實現 :

      LinkHashMap 鏈表內部由數組和雙向鏈表實現 ,

      其能夠保證與隊列一致的性質 , 即先進先出 , 并保證其插入取出順序的一致性 ;

      當調用 get 方法獲取其中的元素時 , 會將該元素提取到隊頭中 , 這符合了 LRU 算法的要求 ;

      LruCache 參考 :

      ① Android LruCache 文檔

      ② 談談LruCache算法的底層實現原理及其內部源碼

      ③ 完全解析Andorid的緩存機制LruCache

      Android

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何保證線程按照指定次序執行-CountDownLatch
      下一篇:linux SELINUX 查看配置文件
      相關文章
      亚洲欧洲日产国码高潮αv| 亚洲AV男人的天堂在线观看| 国产亚洲精品成人AA片| 亚洲成人精品久久| 亚洲级αV无码毛片久久精品| 亚洲午夜无码AV毛片久久| 亚洲M码 欧洲S码SSS222| 风间由美在线亚洲一区| 色偷偷亚洲第一综合网| 国产精品亚洲天堂| 少妇亚洲免费精品| 亚洲国产主播精品极品网红| 亚洲电影日韩精品| 亚洲天堂在线视频| 亚洲真人日本在线| 亚洲五月综合缴情在线观看| 亚洲综合网站色欲色欲| 国产亚洲婷婷香蕉久久精品 | 亚洲国产精品高清久久久| 国产亚洲一区二区手机在线观看| 国产亚洲一区二区在线观看| 久久综合日韩亚洲精品色| 亚洲国产一区在线| 亚洲精品在线免费观看视频| 久久亚洲精品无码VA大香大香| 91亚洲国产成人久久精品网站| 亚洲无人区视频大全| 国产成人精品日本亚洲专区6| 亚洲熟妇无码av另类vr影视| 亚洲av日韩精品久久久久久a| 国产偷国产偷亚洲高清在线| 亚洲精品国产电影| 亚洲理论电影在线观看| 亚洲激情在线观看| 亚洲人成影院在线高清| 亚洲精品蜜夜内射| 亚洲精品视频在线看| 亚洲老妈激情一区二区三区| 精品亚洲成a人片在线观看少妇 | 亚洲国产成人综合| 中文字幕 亚洲 有码 在线|