lru(least recently used) cache,直譯為最近最少使用快取演算法。
因cache的資源容量是寶貴而有限的,當有新的內容需要新增到快取中時,就需要捨棄一部分原有的內容,lru的原則就是將最近最少使用的內容替換掉。
典型的實現方法為:hash map + 雙向鍊錶。
雙向鍊錶: 用來儲存帶有時間戳的資料節點,當需要訪問或者插入乙個節點時,都插入到列表的頭部,這樣可以保證靠近表頭的節點都是使用比較活躍、最近一段時間內可能還會使用的,而靠近鍊錶尾部的節點自然就是最近一段時間內沒有被訪問過的,當cache滿時,就優先替換掉鍊錶尾部的節點。
雜湊表用於快速獲取節點,達到訪問時間複雜度為 o(1
)o(1)
o(1)
.
LRU Cache 最近最少使用演算法
什麼是 lru cache lru cache 演算法是 least recently used,也就是最近最少使用演算法。對於乙個作業系統來說,我們的快取是有限的,所以有的時候我們必須要捨棄掉一些 object 來增加當前程式的執行效率。lru cache 演算法的概念是 當快取空間滿了的時候,將...
LruCache演算法(最近最少使用演算法)用法分析
其實說到記憶體快取的實現,非常容易就讓人想到lrucache演算法 least recently used 也叫近期最少使用演算法。它的主要演算法原理就是把最近使用的物件用強引用儲存在linkedhashmap中,並且把最近最少使用的物件在快取值達到預設定值之前從記憶體中移除。lrucache的用法...
自適應Lru(最近最少使用)演算法
在快取管理演算法中,lru 幾乎是公認的最優的演算法。然而它也有一些缺陷,主要是因為 它假定對實體的訪問有區域性特性。當訪問模式沒有區域性特性的時候,它就會退化為fifo 先進先出 演算法。在我寫乙個檔案系統的實現時,這種現象很讓我頭疼,因為很多時候,對乙個檔案的訪問大多是順序的,前面讀取過的內容幾...