Etrange réponse sous linux 64-bit
Bonjour,
Le code suivant est sencé me donner un timer précis, mais alors qu'il fonctionne trés bien sous windows et linux 32 bits avec gcc ca ne marche plus sous linux 64 bits (pour info, mon linux tourne sous WMWare)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
// Instruction RDTSC du processeur Pentium
double RDTSC(void)
{
unsigned long long x;
__asm__ volatile (".byte 0x0f, 0x31" : "=A"(x));
return (double)x;
}
double wtime()
{
static double freq=-1;
double t;
if (freq<=0) Frequence_CPU(&freq);
t=RDTSC()/freq;
return(t);
}
int main(int argc, char *argv[])
{
double dif=wtime();
Sleep(100);
printf("100: %.4lf s\n",wtime()-dif);
dif=wtime();
Sleep(1000);
printf("1000: %.4lf s\n",wtime()-dif);
dif=wtime();
Sleep(10000);
printf("10000: %.4lf s\n",wtime()-dif);
return(0);
} |
Ca me reponds
100: 0.1001 s
1000: -0.1125s
10000: -0.4558s
C'est étrange, si quelqu'un à une idée