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

1. 局部性原理

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

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

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

2. 缓存与缓冲

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

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

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

3. 缓存层次结构

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

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

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

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

缓存机制与局部性原理相关推荐

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

    本文主要讲解MyBatis非常棒的缓存机制的设计原理,给读者们介绍一下MyBatis的缓存机制的轮廓,然后会分别针对缓存机制中的方方面面展开讨论. MyBatis将数据缓存设计成两级结构,分为一级缓存 ...

  2. Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术

    目录 文章目录 目录 前文列表 基于局部性原理实现的内-外存交换技术 局部性原理 Swap 交换分区 前文列表 <Linux 操作系统原理 - 内存 - 物理存储器与虚拟存储器> < ...

  3. 深入浅出计算机组成原理学习笔记:局部性原理-数据库性能跟不上,加个缓存就好了(第36讲)...

    平时进行服务端软件开发的时候,我们通常会把数据存储在数据库里.而服务端系统遇到的第一个性能瓶颈,往往就发生在访问数据库的时候. 这个时候,大部分工程师和架构师会拿出一种叫作"缓存" ...

  4. 干货 | 彻底弄懂 HTTP 缓存机制及原理

    转载自  干货 | 彻底弄懂 HTTP 缓存机制及原理 前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为 ...

  5. mysql 源码 缓存_MySQL源码:MYSQL存储过程/函数的分析原理及缓存机制

    前言:我个人认为,有关MYSQL存储过程/函数在MYSQL中的实现比较粗糙,可扩展性不够好,其实现的耦合性太高,所以主要讲一些它的原理方面的内容,但有可能在某些方面理解不够好或者有些不正确的地方,欢迎 ...

  6. syslog 向内存中缓存_动画:深入浅出从根上理解 HTTP 缓存机制及原理!

    HTTP 缓存,对于前端的性能优化方面来讲,是非常关键的,从缓存中读取数据和直接向服务器请求数据,完全就是一个在天上,一个在地下. 我们最熟悉的是 HTTP 服务器响应返回状态码 304,304 代表 ...

  7. HTTP缓存机制和原理

    转自:微点阅读  https://www.weidianyuedu.com/content/2217415861309.html HTTP 缓存,对于前端的性能优化方面来讲,是非常关键的,从缓存中读取 ...

  8. 彻底弄懂HTTP缓存机制及原理

    转载:https://www.cnblogs.com/chenqf/p/6386163.html 彻底弄懂HTTP缓存机制及原理 前言 Http 缓存机制作为 web 性能优化的重要手段,对于从事 W ...

  9. HTTP缓存机制及原理详解(最全)

    前言 缓存技术是无数WEB开发从业人员在工作过程中不可避免的一大问题.在产品开发的时候我们总是想办法避免缓存产生,而在产品发布之时又在想策略管理缓存提升网页的访问速度.了解浏览器的缓存命中原理,是开发 ...

最新文章

  1. 机器人把大龙拉出来_LECW4D1综述:塞拉斯一日三登赛场 IgNar机器人重现江湖
  2. [时钟]配置日期时间并同步到硬件
  3. 【数据挖掘】决策树 分类 ( 抽取分类规则 | 过拟合 | 剪枝 | 先剪 | 后剪 | 连续数值离散化 | 最优化分点 | 增益率选择划分属性 )
  4. 高级语言程序设计(c )试卷,《高级语言程序设计C》试卷
  5. Spring Cloud对Hystrix的支持
  6. linux octave源码安装,在Linux操作系统上安装Octave的方法
  7. c++思维导图_必看|用好思维导图,别神话思维导图
  8. vijos 1071 01背包+输出路径
  9. 快速搭建本地FTP服务器的方法
  10. Java制作屏幕截图软件(还可以保存到剪切板内)
  11. 制定交叉编译工具_制作交叉编译工具链的方法总结(详细)
  12. spring 从源码学设计1-doDispatch()
  13. Shopify速度优化
  14. 矩阵奇异值分解(详解)
  15. java经典50道编程题(很好练逻辑思维的题)(第一篇)
  16. 租车项目技术点与连接
  17. matlab实用小程序段 —— 串口发送和读取
  18. oracle获取当前时间
  19. Tensorflow MobileNet移动端迁移学习指南
  20. 【爬虫入门】获取响应内容(即读取网页html的源码)

热门文章

  1. GDCM:二个DICOM文件的diff差异的测试程序
  2. boost::noinit_adaptor用法实例
  3. allocator_is_always_equal的实例
  4. VTK:可视化之Visualize2DPoints
  5. VTK:相互作用之RubberBand2DObserver
  6. Qt Creator指定文本编辑器设置
  7. Qt Creator将对象连接到信号
  8. C++利用线性探查实现存储机制hash table的算法(附完整源码)
  9. QT的QScriptValue类的使用
  10. 下pg负载均衡_SAE 场景下,应用流量的负载均衡及路由策略配置实践