Pourquoi ne cache localité d'importance pour les performances de la baie?

Dans la suite de blog il y a une déclaration au sujet de l'avantage de tableaux sur les listes chaînées:

Tableaux ont une meilleure localité de cache qui peuvent faire une grosse différence dans la performance.

Ça veut dire quoi? Je ne comprends pas comment la localité de cache peut fournir un énorme avantage en termes de performances.

  • Si vous comprenez comment cache fonctionne, alors vous aurez également à comprendre 1) "Localité de Référence" est une Bonne Chose, et 2) l'accès aux données à partir de baies est généralement plus susceptibles d'avoir une bonne "localité" que l'accès à ces mêmes données à partir d'une liste.
  • Une chose à noter est que même si c'est vrai, une liste liée individuellement combiné avec une zone contiguë de l'allocation peut être un atout énorme, principalement parce que les éléments de transfert d'un conteneur à un autre implique pointeur de la logique. Si vous regardez à la disposition de la mémoire de ceux, cependant, il est contigu et ressemble à un tableau avec seulement des liens vers le prochain élément dans le tableau, et il est donc encore cache-friendly (au moins jusqu'à ce que la liste est tout rénové).