ARC算法

作者: 墨_0b54 | 来源:发表于2021-11-07 15:46 被阅读0次

    ARC(Adjustable Replacement Cache)是一个缓存优化策略,ARC内部将缓存分为两类,分别是LRU(最近最多使用缓存)和LFU(最近最频繁使用),一般情况缓存根据时间进行优化或者根据频率进行优化,但是ARC可以自动调整优化策略。

    首先说结论:
    ARC是一种平衡访问时间优先和访问频率优先的策略,当缓存倾向于访问最近访问过的缓存(LRU)时,ARC会增加LRU链表的空间(同时减少LFU链表的空间);当缓存倾向于访问最近频繁访问的文件时,ARC会增加LFU链表的空间(同时减少LRU链表的空间)。

    ARC的做法:
    假设总容量固定为n,初始状态我们需要容量为2n的管理表,分为四个链表。

    • 最近最多使用的缓存链表,LRU链表
    • 最近最频繁使用的缓存链表,LFU链表
    • 最近从LRU表中淘汰的缓存链表,ghost LRU链表
    • 最近从LFU表中淘汰的缓存链表,ghost LFU链表

    所有数据首次进入缓存都会被放在LRU链表中,当被访问第二次时会进入LFU链表,且越是最近访问的数据越靠近头部。
    当两个缓存都满了以后,一个新的数据进入缓存:

    • LRU链表满了,链表尾部页面被淘汰到ghost LRU链表中
    • 当命中ghost LRU链表,说明LRU缓存太小了,LRU链表的长度将会被加1,LFU链表的长度将会被减1
    • LFU同理, 当数据从ghost链表中被淘汰,就是真正的被淘汰了。

    相关文章

      网友评论

          本文标题:ARC算法

          本文链接:https://www.haomeiwen.com/subject/ursezltx.html