Lieu temporel vs lieu Spatial avec tableaux

je suis un peu confus sur les significations de localisation spatiale et temporelle. J'espère qu'en le regardant avec un exemple de tableau il m'aidera à mieux le comprendre.

Dans un exemple comme ceci: A[0][1], A[0][2], A [0] [3].... etc

cela démontre-t-il la localisation temporelle? Je vois que la même ligne est utilisée plusieurs fois, mais à des décalages différents... est-ce à dire une adresse différente est accessible?

J'ai aussi raison de dire qu'un exemple comme ce: [1], [2], [3]... etc

démontre une localisation spatiale?

J'espère que des clarifications sur la façon dont la localisation temporelle et Spatiale fonctionne en code réel m'aideront à mieux les comprendre.

29
demandé sur Peter Cordes 2013-04-30 02:39:47

4 réponses

localisation spatiale et temporelle décrivez deux caractéristiques différentes de la façon dont les programmes accèdent aux données (ou aux instructions). Wikipedia a un bon article sur la localité de référence.

Une séquence de références est dit spatial localité si les choses qui sont référencées près du temps sont également près de l'espace (adresses mémoire à proximité, secteurs à proximité sur un disque, etc.). Une séquence est dit temporal localité si les accès à la même chose sont groupés en temps.

si un programme accède à chaque élément d'un grand tableau et le lit une fois puis passe à l'élément suivant et ne répète pas un accès à un endroit donné jusqu'à ce qu'il ait touché tous les autres endroits, alors c'est un cas clair de spatiales localité, mais pas temporelle localité. D'autre part, si un programme passe du temps à accéder de façon répétée à un sous-ensemble aléatoire des emplacements sur le tableau avant de passer à un autre sous-ensemble aléatoire, il est dit pour avoir temporelle localité, mais pas spatiales localité. Un programme bien écrit aura des structures de données qui regroupent des choses auxquelles on accède ensemble, assurant ainsi spatiales localité. Si votre programme est susceptible d'accéder à B peu après l'accès puis les deux et B devraient être attribuées à proximité l'une de l'autre.

votre première exemple

A[0][1], A[0][2], A[0][3]

spectacles spatiales localité, des choses qui sont accessibles proche dans le temps sont proches dans l'espace. Il ne montre pas temporelle localité parce que vous n'avez pas accédé à la même chose plus d'une fois.

votre second exemple

A[1], A[2], A[3]

montre aussi spatiales localité, mais pas temporelle localité.

Voici un exemple qui montre temporelle localité

A[1], A[2000], A[1], A[1], A[2000], A[30], A[30], A[2000], A[30], A[2000], A[30], A[4], A[4]
60
répondu amdn 2013-05-15 19:00:00

Dans des mots simples,

localisation temporelle: le concept qu'une ressource référencée à un point dans le temps sera référencé à nouveau peu de temps dans un avenir proche.

localisation spatiale: le concept que la probabilité de référencement d'une ressource est plus si une ressource près c'était juste référencés.

Source(s): Wikipedia

12
répondu Chinmayee Shenvi 2017-03-17 10:57:22

Voici un exemple de code avec localité:

var sum = 0;
for (i = 0; i < n; i++){
  for(j=0; j < m ; j++){
    sum += a[i][j];
    }
}
return sum;
  • Il n'existe temporelle localité parce que la somme est souvent accessibles dans la boucle. La localisation temporelle est exploitée en gardant les instructions et les valeurs de données utilisées récemment dans la mémoire cache et en exploitant une hiérarchie de cache. Ou même dans un registre, pas de mémoire du tout.

  • Il n'existe localisation spatiale parce que nous avons un tableau 'a' et nous l'accès à chaque élément du tableau dans l'ordre. La localisation spatiale est généralement exploitée en utilisant des blocs de cache plus grands et en incorporant des mécanismes de précollecte (recherche d'éléments d'utilisation prévue) dans la logique de contrôle du cache.

2
répondu superrcoop 2018-07-26 01:41:00

localisation temporelle est le cas particulier de spatiales de la localité.

0
répondu laura 2018-04-19 07:37:12