clock() zu ungenau???...Was ist hier verkehrt???
-
Hi,
ich wollte in einem kleinen C-Win32-Konsolenprogramm wissen, wie lange es braucht, bis ein Server antwortet...also hab ich die Funktion clock() von time.h bemüht...etwa so:
clock_t start, end;
...
start = clock();
...clientaufruf...
end = clock();
printf("\n\nStartzeit: %d Endzeit: %d CLK_TCK: %d Elapsed time: %Lf Sekunden\n", startzeit, endzeit, CLOCKS_PER_SEC, (double) (endzeit-startzeit)/ CLOCKS_PER_SEC );
**********************************
Die Ausgabe ist dann meistens z.b.: Startzeit: 401 EndZeit: 401 CLK: 1000 ElapsedTime: 0.000000===> mach ich da irgendwas falsch??...Weil eigentlich sollte doch clock() die Anzahl der CPU-Ticks liefern...das sollte doch eigentlich nie den selben Wert liefern??...Gibts irgendnen andren Weg rauszukriegen, wielange etwas GANZ GENAU dauert??
Anmerkung1:..wenn ich anstatt CLK_TCK, TICK_PER_SECONDS nehm kommt das gleiche raus...
Anmerkung2:..um Fehler durch falsch formatierte printfs auszuschliessen, hab ich das auch debugged....der Debugger zeigt die selben Werte wie mein printf...BESTEN DANK FUER JEDE ANTWORT!!!!
-
Ich würde eher
gettimeofday(&start, NULL); // do something gettimeofday(&stop, NULL); stop.tv_sec -= start.tv_sec; stop.tv_usec -= start.tv_usec; if(stop.tv_usec < 0) { stop.tv_sec -= 1; stop.tv_usec += 1000000; }
benutzen (wobei ich mir aber nicht sicher bin, obs das unter Win gibt).