Il faut abolir le modèle où l'acces à la mémoire est jugé à un coup uniforme, c'est complètement faux (de 1 à 150 !).
La mémoire dispose d'un grand nombre de "multiple" (taille de write buffer, ligne de cache L1, L2, page mémoire de 4 ko et 4 Mo). On peut aussi tenir compte de l'associativité des caches et donc de l'aliasing des adresses mémoire dans les bits lsb d'adresses.
Tu peux déjà aligner les adresses mémoires avec l'utilisation qui est en faite (genre trier les élements d'un struct en fonction de l'utilisation de ses champs). Jouer avec le preload et le prefetch pourrait aussi améliorer les choses. Et augmenter la localité d'acces.
[^] # Re: Lent ?
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Présentation d'OCaml à Rennes le jeudi 7 avril, 20h, MCE, 48 bd Magenta. Évalué à 2.
La mémoire dispose d'un grand nombre de "multiple" (taille de write buffer, ligne de cache L1, L2, page mémoire de 4 ko et 4 Mo). On peut aussi tenir compte de l'associativité des caches et donc de l'aliasing des adresses mémoire dans les bits lsb d'adresses.
Tu peux déjà aligner les adresses mémoires avec l'utilisation qui est en faite (genre trier les élements d'un struct en fonction de l'utilisation de ses champs). Jouer avec le preload et le prefetch pourrait aussi améliorer les choses. Et augmenter la localité d'acces.
"La première sécurité est la liberté"