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)
Ca me reponds
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
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); }
100: 0.1001 s
1000: -0.1125s
10000: -0.4558s
C'est étrange, si quelqu'un à une idée
Partager