Lokacja czasowa A przestrzenna z tablicami

Jestem trochę zdezorientowany co do znaczeń lokalności przestrzennej i czasowej. Mam nadzieję, że patrząc na to z przykładu tablicy, pomoże mi to lepiej zrozumieć.

W przykładzie takim jak ten: A [0] [1], A[0] [2], A[0] [3].... etc

Czy to pokazuje czasową lokalność? Widzę, że ten sam wiersz jest dostępny wiele razy, ale przy różnych przesunięciach... czy to oznacza, że dostępny jest inny adres?

Również, czy mam rację mówiąc, że przykład taki jak ten: A [1], A [2], A [3]... etc

Pokazuje lokalność przestrzenną?

Mam nadzieję, że pewne wyjaśnienie, jak działa lokalność czasowa i przestrzenna w prawdziwym kodzie, pomoże mi lepiej je zrozumieć.

Author: Peter Cordes, 2013-04-30

4 answers

Przestrzenna i czasowa lokalizacja opisują dwie różne cechy dostępu programów do danych (lub instrukcji). Wikipedia ma dobry artykuł o miejscu odniesienia .

Mówi się, że sekwencja odwołań ma spatial lokalność, jeśli rzeczy, do których odwołuje się blisko w czasie, są również bliskie w przestrzeni (pobliskie adresy pamięci, pobliskie sektory na dysku itp.). Mówi się, że sekwencja ma temporal lokalność, jeśli dostęp do tej samej rzeczy jest grupowany w czasie.

Jeśli program uzyskuje dostęp do każdego elementu w dużej tablicy i odczytuje go raz, a następnie przechodzi do następnego elementu i nie powtarza dostępu do żadnej określonej lokalizacji, dopóki nie dotknie każdej innej lokalizacji, wtedy jest to wyraźny przypadek spatial local ale nie temporal local. Z drugiej strony, jeśli program spędza czas na wielokrotnym dostępie do losowego podzbioru lokalizacji w tablicy, zanim przejdzie do innego losowego podzbioru, mówi się, że temporal local ale nie przestrzenne lokalność. Dobrze napisany program będzie miał struktury danych, które grupują rzeczy, które są dostępne razem, zapewniając w ten sposób przestrzenne lokalność. Jeśli program ma dostęp do B wkrótce po uzyskaniu dostępu do A , to zarówno a i B powinny być przydzielone blisko siebie.

Twój pierwszy przykład

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

Pokazuje przestrzenne lokalność, rzeczy, które są dostępne blisko w czasie są blisko w przestrzeni. Nie pokazuje czasowego miejsca, ponieważ nie uzyskałeś dostępu do tej samej rzeczy więcej niż raz.

Twój drugi przykład

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

Pokazuje również przestrzenne lokalność, ale nie temporalne lokalność.

Oto przykład, który pokazuje temporal local

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
Author: amdn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-15 19:00:00

W prostych słowach,

Lokalność czasowa: pojęcie, że zasób, do którego odwołuje się w pewnym punkcie w czasie zostaną ponownie przywołane w niedalekiej przyszłości.

Lokalność przestrzenna: pojęcie, że prawdopodobieństwo odwołania się do zasobu jest wyższe, jeśli zasób w pobliżu był tylko odwołany.

Źródło(y): Wikipedia

 12
Author: Chinmayee Shenvi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-17 10:57:22

Oto przykład kodu z lokacją:

var sum = 0;
for (i = 0; i < n; i++){
  for(j=0; j < m ; j++){
    sum += a[i][j];
    }
}
return sum;
  • Istnieje lokacja czasowa , ponieważ suma jest często dostępna w pętli. Lokacja czasowa jest wykorzystywana przez przechowywanie ostatnio używanych wartości instrukcji i danych w pamięci podręcznej oraz przez wykorzystanie hierarchii pamięci podręcznej. Albo nawet w rejestrze, w ogóle nie w pamięci.

  • Istnieje lokacja przestrzenna ponieważ mamy tablicę " a " i dostęp do każdego elementu tablicy w kolejności. Przestrzenne lokalność jest zazwyczaj wykorzystywana przez użycie większych bloków pamięci podręcznej i włączenie mechanizmów wstępnego ustawiania (pobierania elementów przewidywanego użycia) do logiki sterowania pamięcią podręczną.

 2
Author: superrcoop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-26 01:41:00

Lokacja czasowa jest szczególnym przypadkiem lokacji przestrzennej .

 0
Author: laura,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-19 07:37:12