Ich möchte in Linux eine Messung einer Routinenlänge durchführen und dazu die ticks mittels der clock() Funktion ausgeben, weil die Sekunden nicht genau genug sind. Ich bekomme aber das casten nicht hin, bzw wie kann man das mit möglichst geringem Zeitverlust tun? (in ASC will ich nicht wandeln) Ich kenne mich mit dem clock() nicht aus und der cast printf("%d" (int)clock())) liefert nur null.
clock() ist dafür ehere ungeeignet, es ist die Prozesszeit. Wenn du 10min lang auf einen IO wartest steht dann 0 da, willst du da? du kannst nicht einfach irgendwie auf int casten! verwende gettimeofday dann bekommst du microseconds.
Genau, gettimeofday() sollte für dich passen, damit hast du es µs genau.
1 | struct timeval tv; |
2 | long time1,time2; |
3 | |
4 | gettimeofday(&tv, NULL); |
5 | time1 = tv.tv_usec; |
6 | |
7 | // hier dein Code
|
8 | |
9 | gettimeofday(&tv, NULL); |
10 | printf("Timediff: %d us",tv.tv_usec - time1); |
Das mit der time2 hast du doch sicher ein wenig anders gemeint.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.