缓存机制与局部性原理

Posted zzfx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓存机制与局部性原理相关的知识,希望对你有一定的参考价值。

http://www.cnblogs.com/jqctop1/p/4714116.html

1. 局部性原理

  局部性原理是指计算机在执行某个程序时,倾向于使用最近使用的数据。局部性原理有两种表现形式:时间局部性和空间局部性。

  时间局部性是指被引用过的存储器位置很可能会被再次引用,例如:重复的引用一个变量时则表现出较好的时间局部性

  空间局部性是指被引用过的存储器位置附近的数据很可能将被引用;例如:遍历二维数组时按行序访问数据元素具有较好的空间局部性

 

2. 缓存与缓冲

  缓冲通常在接收者和发送者速度差异较大的场合使用,例如:网络缓冲区;

  缓存通常用于补偿不同存储器之间的读写速度差异,例如:Cache;

  缓存和缓冲一个重要的区别是:对于缓冲来说,接收者接下来想要使用的数据就在缓冲区中;而缓存的有效性是依赖于局部性的,即对于缓存来说,快速存储器接下来想要使用的数据不一定就在缓冲存储器中。

 

3. 缓存层次结构

  

  如图所示,最上层的是寄存器,最下层的是远程文件系统,从下到上,存储器的速度更快,造价更贵因而容量更小。

  上一层的存储器保存着下一层存储器中部分数据的拷贝,上一层即作为下一层的缓存;

  当需要第k+1层的某个数据时,先在第k层中寻找,若找到,则称为缓存命中,若没找到,则称为缓存不命中;

  当缓存不命中时,需要从第k+1层拷贝需要的数据到第k层,这样就可能会需要替换第k层中已经缓存的某些数据,需要替换时通常会有个替换策略来指导替换哪些数据;

以上是关于缓存机制与局部性原理的主要内容,如果未能解决你的问题,请参考以下文章

nginx 缓存机制

三分钟看懂Nginx服务器的缓存原理和机制

《深入理解mybatis原理4》 MyBatis缓存机制的设计与实现

缓存机制

HTTP缓存机制与原理

干货分享 | MyBatis实战缓存机制设计与原理解析