Bon alors on va pas parler uniquement du support des registres 64bits vu que c'est complétement idiot étant donné que c'est loin d'etre la seule amélioration du x86-64 sur le x86, donc voilà un exemple très simple (et très con j'avoue):
int main(int argc, char **argv) {
long long i;
struct timeval tv1,tv2;
for(i=0;i<=1024*1024*1024;i++);
printf("%lld\n", i);
}
phh @ phh-desktop ~ % gcc test2.c -o test2 -m32 ; time ./test2
1073741825
./test2 4,68s user 0,00s system 99% cpu 4,699 total
phh @ phh-desktop ~ % gcc test2.c -o test2 ; time ./test2
1073741825
./test2 3,37s user 0,00s system 99% cpu 3,394 total
Résultats reproductibles à moins de 10% de marge sur mon système (Core 2 Q6600 sur une kubuntu intrepid). En ce qui concerne les registres spécifiquement ca serait pas trop dur mais fastidieux à faire, m'enfin ca montre déjà que y a un gain à avoir (à moins que ce soit au niveau de gcc, mais j'ai essayé une paire d'options ca changeait rien à part -Ox qu'est trop intelligent)
[^] # Re: la vraion raison
Posté par Ph Husson (site web personnel) . En réponse au journal Flash version 64 bits pour linux exclusivement!. Évalué à 4.
phh @ phh-desktop ~ % cat test2.c
#include <stdio.h>
#include <sys/time.h>
#include <time.h>
int main(int argc, char **argv) {
long long i;
struct timeval tv1,tv2;
for(i=0;i<=1024*1024*1024;i++);
printf("%lld\n", i);
}
phh @ phh-desktop ~ % gcc test2.c -o test2 -m32 ; time ./test2
1073741825
./test2 4,68s user 0,00s system 99% cpu 4,699 total
phh @ phh-desktop ~ % gcc test2.c -o test2 ; time ./test2
1073741825
./test2 3,37s user 0,00s system 99% cpu 3,394 total
Résultats reproductibles à moins de 10% de marge sur mon système (Core 2 Q6600 sur une kubuntu intrepid). En ce qui concerne les registres spécifiquement ca serait pas trop dur mais fastidieux à faire, m'enfin ca montre déjà que y a un gain à avoir (à moins que ce soit au niveau de gcc, mais j'ai essayé une paire d'options ca changeait rien à part -Ox qu'est trop intelligent)