Bonjour,
je me demandai si entre ces deux ecriture il y aura une differance de performance et pourquoi?
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 int h ; int w; std::vector<char> buffer; chargerBuffer(buffer,h,w); std::vector<float> bufferout(buffer.size()); for(int i=0;i<h;++i) for (int j =1;j<w;++j) { bufferout[i*w+j] = buffer[i*w+j]-buffer[i*w+j-1]; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 int h ; int w; std::vector<char> buffer; chargerBuffer(buffer,h,w); std::vector<float> bufferout(buffer.size()); for(int i=0;i<h;++i) { std::vector<char>::iterator itIn =buffer.begin() + i*w; std::vector<float>::iterator itout =bufferout.begin()+i*w; for (int j =1;j<w;++j) { *(itout +j) = *(itIn +j)-(itIn +j-1); } }
A mon avis les multiplication en moins ne change rien.
Je me demande si il y aurait pas une différence au niveau du chargement de la memoire pour le CPU, et que l'écriture 2 est meilleur.
Une autre question, est il vrai que le parcoure d'un tableau est plus rapide quand on va de la fin au debut?
merci
Partager