zoukankan      html  css  js  c++  java
  • 缓存机制与局部性原理

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

    1. 局部性原理

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

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

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

    2. 缓存与缓冲

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

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

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

    3. 缓存层次结构

      

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

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

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

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

  • 相关阅读:
    华为机考--约瑟夫问题
    华为机考--字符串压缩
    2014华为校招机考模拟--求最大递增数
    2014华为校招机考模拟--记票统计
    插入排序与归并排序的C#实现
    步入C#--hello world
    shell 命令用法
    About compiling some source code on centos
    ubuntu Install packages
    ssh命令
  • 原文地址:https://www.cnblogs.com/feng9exe/p/6882423.html
Copyright © 2011-2022 走看看