卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

lfu算法實現 LFU算法LFU算法過程是什么,呵LRU算?

LFU算法LFU算法過程是什么,呵LRU算?LRU是最近最少使用的頁面替換算法(least recently used),即首先消除最長未使用的頁面!LFU是最近使用最少的頁面替換算法(最少頻繁使用)

LFU算法LFU算法過程是什么,呵LRU算?

LRU是最近最少使用的頁面替換算法(least recently used),即首先消除最長未使用的頁面!LFU是最近使用最少的頁面替換算法(最少頻繁使用),即在一定的時間內消除最少訪問的頁面!例如,第二方法的周期T是10分鐘,如果每分鐘分頁一次,則主存儲器塊是3,如果所需的頁方向是21234。請注意,調用第4頁時,將出現缺頁中斷。根據LRU算法,應該替換第1頁(第1頁最長時間沒有使用),但是根據LFU算法,應該替換第3頁(第3頁每十分鐘才使用一次)??梢钥闯觯琇RU的關鍵是看頁面最后使用了多長時間,而LFU的關鍵是看頁面在一段時間內使用的頻率

lfu算法優(yōu)缺點?

在LFU算法中,可以為每個密鑰維護一個計數器。每次存取鑰匙時,計數器都會增加。計數器越大,訪問頻率就越高。

上述簡單算法有兩個問題:

在LRU算法中,它可以維護一個雙向鏈表,然后簡單地將被訪問的節(jié)點移動到鏈表的開頭,但在LFU中是不可行的。節(jié)點應嚴格按照計數器排序。當添加新節(jié)點或更新節(jié)點位置時,時間復雜度可能達到o(n)。

增加計數器的簡單方法并不完美。訪問模式將頻繁更改。在一段時間內頻繁訪問的密鑰在一段時間后可能很少被訪問。僅僅增加計數器不能反映這一趨勢。

第一個問題解決得很好。我們可以借鑒LRU實現的經驗來維護一個待淘汰的密鑰池。第二個問題的解決方案是記錄上次訪問密鑰的時間,然后隨著時間的推移減少計數器。

redis object的結構如下:

typedef struct redisobject{

unsigned類型:4

未簽名編碼:4

未簽名lru:lru位/*LRU時間(相對于全局LRU時鐘)或

*LFU數據(最低有效8位頻率

*和最高有效16位訪問時間)。*/

int refcount

void*ptr

}羅布