java十大算法 LFU算法LFU算法過(guò)程是什么,呵LRU算?
LFU算法LFU算法過(guò)程是什么,呵LRU算?LRU是最近最少使用的頁(yè)面替換算法(least recently used),即首先消除最長(zhǎng)未使用的頁(yè)面!LFU是最近使用最少的頁(yè)面替換算法(最少頻繁使用)
LFU算法LFU算法過(guò)程是什么,呵LRU算?
LRU是最近最少使用的頁(yè)面替換算法(least recently used),即首先消除最長(zhǎng)未使用的頁(yè)面!LFU是最近使用最少的頁(yè)面替換算法(最少頻繁使用),即在一定的時(shí)間內(nèi)消除最少訪(fǎng)問(wèn)的頁(yè)面!例如,第二方法的周期T是10分鐘,如果每分鐘分頁(yè)一次,則主存儲(chǔ)器塊是3,如果所需的頁(yè)方向是21234。請(qǐng)注意,調(diào)用第4頁(yè)時(shí),將出現(xiàn)缺頁(yè)中斷。根據(jù)LRU算法,應(yīng)該替換第1頁(yè)(第1頁(yè)最長(zhǎng)時(shí)間沒(méi)有使用),但是根據(jù)LFU算法,應(yīng)該替換第3頁(yè)(第3頁(yè)每十分鐘才使用一次)。可以看出,LRU的關(guān)鍵是看頁(yè)面最后使用了多長(zhǎng)時(shí)間,而LFU的關(guān)鍵是看頁(yè)面在一段時(shí)間內(nèi)使用的頻率
android里面lrucache算法為什么用雙向鏈表實(shí)現(xiàn)?
LRU是通過(guò)雙向鏈表和映射實(shí)現(xiàn)的,在Java中也是通過(guò)雙向鏈表實(shí)現(xiàn)的。通過(guò)JDK中的LinkedHashMap很容易實(shí)現(xiàn)lrucache。
將最近訪(fǎng)問(wèn)的元素放在鏈表的一端。如果容量達(dá)到極限,則從另一端拆下元件