Retourner au contenu associé (journal : Optimisation de code C)
Posté par Nicolas Boulay (site web personnel) le 19 août 2004 à 17:14. En réponse au journal Optimisation de code C. Évalué à 2.
"La première sécurité est la liberté"
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# + d'infos...
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Optimisation de code C. Évalué à 2.
Si c'est "moyen gros", tu peux essayer un bloc prefetch.
genre rajouter :
for(i=0; i < n; i += 16)
{
dummy1 += a[i]; dummy2 += b[i];
}
devant la 1er boucle mais vu que tu n'y fais pas grand chose peut-être que mixer la chose pourrais faire gagner du temps :
for(i=0; i < (n/4)*4 ; i += 4){ // les prefetcher automatiques n'aiment pas les adresses descendantes
dummy1 += a[j=(j+16) mod n]; dummy2 += b[j];
res1+=a[i] * b[i];
res2+=a[i+1] * b[i+1];
res3+=a[i+2] * b[i+2];
res4 +=a[i+3] * b[i+3];
}
res += res1 + res2 + res3 +res4;
A coder en SSE si tu veux t'amuser (déroulant la boucle pareil !).
"La première sécurité est la liberté"