Travailler avec un programme qui utilise des matrices 4c4 un octet 16bytes:C/C++ d'optimiser les structures de données, tableau de tableaux ou matrices juste
unsigned char matrix[4][4];
et quelques 256 octets 16v16 une des matrices d'octets:
unsigned char bigMatrix[16][16];
Très souvent, en raison de la manipulation des données, je suis obligé de faire une boucle dans le programme en faisant des erreurs dans le cache.
Est-ce que la performance d'améliorer si j'utilise un tableau à la place, à savoir
unsigned char matrix[16];
unsigned char matrix[256];
et accéder aux éléments en utilisant des variables pour récupérer des éléments, à savoir
matrix[variableA*variableB + i];
où variableA * variableB + i besoins être recalculé chaque fois que je veux accéder à un élément. Je veux seulement l'optimisation de la vitesse et la mémoire ne pose aucun problème. Est-ce que cela aidera, comme donner un coup ou une perte de performance, ou est-ce que la différence est trop petite pour s'en soucier?
Je dirais, trop petit pour s'en soucier, mais j'attendrai quelqu'un qui sait réellement mieux pour donner une vraie réponse. – sykora