空间和时间局部性描述了程序如何访问数据(或指令)的两个不同特征。

定义:

  • 如果在时间上被引用的事物在空间上也接近(相邻的存储器地址,磁盘上的邻近扇区等),则引用序列被认为具有空间局部性(Spatial Locality)
  • 如果对同一事物的访问在时间上聚集在一起,则该序列被称为具有时间局部性(Temporal Locality)。

通俗而言:

  • 时间局部性就是被引用过一次的存储器位置在未来会被多次引用(通常在循环中)
  • 空间局部性就是如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。

举例

Example of computing the sum of an array:
计算机中 空间局限性(Spatial Locality)与时间局限性(Temporal Locality)
在上述代码中,

  1. sum为时间局限性Temporal Locality,因为sum被引用了多次。
  2. 数组元素为空间局限性spatial Locality,因为如果a[i]被使用,则a[i+1],a[i-1]…很可能被引用。

练习

时间局限性和空间局部性的意义分别为( )。

A.最近被访问的单元,很可能在不久的将来还要被访问
B.最近被访问的单元,很可能它附近的单元也即将被访问
C.结构化程序设计,很少出现转移语句
D.程序中循环语句的执行一般时间很长

答案
A是时间局域性,B是空间局域性。C、D有可能正确,但并不是时空局域性的根本定义,或者说,C和D是造成时空局域性的原因,而不是时空局域性的意义。

相关文章:

  • 2021-12-09
  • 2021-05-27
  • 2022-01-23
  • 2022-01-04
  • 2022-12-23
  • 2022-02-18
猜你喜欢
  • 2022-12-23
  • 2021-07-10
  • 2022-01-18
  • 2021-09-10
  • 2022-12-23
  • 2021-04-22
  • 2021-09-20
相关资源
相似解决方案