局部性通常有两种不同的形式:时间局部性和空间局部性。
时间局部性
在一个具有良好的时间局部性的程序中,被访问过一次的存储器位置很可能在不远的将来会被再次访问。
空间局部性
在一个具有良好空间局部性的程序中,如果一个存储器位置被访问了一次,那么程序很可能在不远的将来访问附近的一个存储器位置。
局部性原理的应用
硬件层引入高速缓存存储器,操作系统的虚拟地址空间的技术,以及缓存磁盘文件系统中最近被使用的磁盘块等都用到了局部性原理。
局部性的简单原则
- 重复引用同一个变量的程序有良好的时间局部性。
- 做顺序访问的程序具有良好的空间局部性。
- 循环结构具有良好的空间局部性和时间局部性。循环体越小,循环迭代次数越多,局部性越好。