Forum: PC-Programmierung Ausgabe der ticks mit clock() und printf () in Linux


von Edi M. (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von Timmo H. (masterfx)


Lesenswert?

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);

von C-Progger (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.