Listening to the Words

计算机基础(3)之高速缓存

高速缓存(真换传)

《计算机基础(3)之高速缓存》

高速缓存(cache)是存在于计算机CPU和内存之间的缓存层作用是解决CPU速度快而内存速度慢带来的性能浪费问题。

  • CPU需要数据在缓存里
  • CPU需要数据不在缓存里,去内存拿数据

尤其存在速度差距,第二种方式导致CPU效率下降,由此产生了两个概念。

  • 缓存命中率
  • 缓存访问效率

两个概念都是衡量CPU对缓存的使用情况,只是计算方式有差别。计算方式无需记忆

为了提高缓存使用效率,就需要缓存替换策略,有如下四种策略:

  • 随机策略
  • 先进先出算法(FIFO)
  • 最不经常使用算法(LFU)
  • 最近最少使用算法(LRU)

先进先出(FIFO)

这种算法像是一个队列,先进来的也会先出去,特点是简单,缺点是容易把老顾客也请出去。

最不经常使用算法(LFU)

这种算法是把最不经常使用的字块淘汰的,就像是公司的末位淘汰机制,如果存在末位淘汰,就要求同时有一个计数器记录每个字块的使用频率,到达一定时间触发策略时,开始执行算法。

这个算法提升了执行效率,缺点是需要对每个字块单独开辟空间记录。

最近最少使用算法(LRU)

这个算法会优先淘汰掉一段时间内没有使用的字块,当缓存字块占满了缓存空间就会触发。
它通过双向链表实现,每一个当前被使用的字块都会在链表顶端,然后有新的字块被使用后,链表发生变动,当触发替换操作时,会置换掉尾部的字块。

这个算法不仅提升了缓存执行效率同时也减少了单独记录缓存字块的空间开销

费曼记忆法

高速缓存置换算法可以类比为甄嬛传的一生:

  • 嫁鸡随鸡(随机) (随机算法)
  • 失宠 (最近最少使用算法)
  • 打入冷宫 (最不经常使用算法)
  • 甄嬛逆袭,先进个人 (先进先出算法)
点赞