Zeitmessung in MicroSekunden
-
hallo leute
ich muss einen algorithmus zeitlich ausmessen, und da es sich um teilalgorithmen handelt die weniger als eine millisekunde laufen, bentige ich eine funktion die auf eine mikrosekunde genau misst.
<sys/timeb.h> hab ich getestet, die kann nur millisekunde wie es ausschaut.
<time.h> glaub ich nicht dass die das kann.hat jemand ne bessere idee?
grüße
Toby
-
auf nem x86 pc? der hat 'nen eingebauten counter, der jeden takt zählt. guckst du: http://www.cs.usfca.edu/~cruse/cs210/rdtscpm1-1.pdf
-
It0101 schrieb:
und da es sich um teilalgorithmen handelt die weniger als eine millisekunde laufen
Bei solchen Fragestellungen läßt man den Teilalgorithmus eben einige
tausend Mal hintereinander in einer Schleife durchlaufen.
-
Schau dir mal QueryPerformanceCounter an.
-
auf welchem system bist du?
eas: nutzlos, falls er linux laufen hat.
-
kuck dir mal clock() an
-
Hallo,
ich hatte mal das gleiche Problem. Hier meine Lösung:#include<stdio.h> /* die anderen header must du mal schauen */ int main() { struct timeval start,end; unsigned long sec,usec; gettimeofday(&start,(struct timezone*)0); sleep(3); gettimeofday(&end,(struct timezone*)0); sec = (unsigned long)end.tv_sec - start.tv_sec; /* ueberlauf behandeln */ if(sec>end.tv_sec) { sec += 1000000000UL; --sec; } /* das selbe mit usec und schon hast du in sec die Anzahl der Sekunden und in usec die Anzahl der Millisekunden */ return(0); }
Gruß