内存淘汰算法读写性能原理

DBC 1.3K 0

内存淘汰算法读写性能原理插图

  • 内存缓存淘汰算法是什么?

    • 对于避免不需要的数据还在存,浪费资源,所以需要用各种算法来淘汰掉不需要、不活跃的数据。
  • 为什么要用淘汰算法

  • 有哪些淘汰算法

    • FIFO

    • LRU

    • LFU

    • W-Tiny-LFU

  • FIFO:先进先出

    • 在这种淘汰算法中,先进入缓存的会先被淘汰

    • 命中率很低

  • LRU算法是什么?

    • Least recently used,最近最少使用

  • 为什么要用LRU算法

    • 根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”

  • LRU算法原理剖析

    • 如果数据最近被使用,那么就把数据放在队首,这样离淘汰又更久了一些,而一些不经常使用的就会被顶到队尾,然后被淘汰掉。
  • LFU算法是什么?

    • Least Frequently Used

    • 内存淘汰算法读写性能原理插图2
  • 为什么要用LFU算法

    • 算法根据数据的历史访问频率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”

  • LFU算法原理剖析

    • 新加入数据插入到队列尾部(因为引用计数为1)

    • 队列中的数据被访问后,引用计数增加,队列重新排序;

    • 当需要淘汰数据时,将已经排序的列表最后的数据块删除。

  • LFU的缺点

    • 复杂度

    • 存储成本

    • 尾部容易被淘汰

发表评论 取消回复
表情 图片 链接 代码

分享