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


Log in to reply