程序局部性

谈谈程序局部性

程序局部性包括时间局部性和空间局部性。

  • 时间局部性是指被访问过一次的内存位置很可能在不远的将来会被再次访问
  • 空间局部性是指如果一个内存位置被引用过,那么他邻近的位置在不远的将来也有很大概率会被访问

利用局部性原理,人们设计了缓存,把可能会被访问到的少量数据放在缓存中,这样就大大加速了 CPU 访问内存的速度。虚拟内存的页缓存也是基于同样的原理,未来最有可能会被访问的页面会被保留在物理内存中。所以在多级存储结构中,当访问者和被访问者之间的速度不匹配时,就是缓存能够发挥作用的场景。

基于同样的原理的,还有内容传递网络(Content Delivery Network, CDN)。缓存的思想是普遍而广泛的。