这是时间还是空间位置?

时间:2011-10-27 14:30:10

标签: spatial computer-architecture temporal

我想询问空间时间局部性。如果我在一个带有循环变量的循环中说i 并且我遍历一个名为arr[i]的数组,那么当我访问arr [i]然后根据我来说它应该是时间和空间位置首先,我将访问i并找出i是什么,然后转到该索引。我在这做两件事,

  1. 访问i(时间地点)。
  2. 访问地址arr[i](空间位置)。
  3. 请告诉我这种情况是否正确。
    提前谢谢。

1 个答案:

答案 0 :(得分:3)

时间地点:事情是在很短的时间内发生的吗?如果是这样,他们有时间局部性。如果没有,他们就没有。

空间位置:在空间中靠近的东西(即记忆)?如果是这样,它们具有空间局部性。如果没有,他们就没有。

请注意,使用这些术语时,您需要指定什么是本地的;孤立地说,它们没什么意义。

arr的元素(假设通常意味着“数组”的实现,即在连续块中分配的数据元素)具有相对于彼此的空间局部性。您不知道(至少在问题中所述的任何内容)i相对于arr的位置,因此您无法说明这些对象是否相对于彼此具有空间局部性或不。

访问iarr[i]的语句一个接一个地发生,因此这些语句表现出时间局部性,假设您对每个数组元素的工作都很便宜;通过这种假设,通过后续迭代引用arr的不同元素也将表现出时间局部性。但是,如果对于循环的每次迭代,您调用一些在访问iarr之间需要很长时间的函数,那么这些访问将表现出时间局部性将不再是真的。