Probleme mit clock()



  • Hi,

    ich möchte in meinem Programm ne Ping ermitteln. Mir ist nichts besseres eingefallen, als einen Timer dafür zu verwenden:

    long timer=0;
    {
    float msecs = (clock() / (float) CLOCKS_PER_SEC) * 1000.0f;
    // (*)
    timer += msecs;
    }
    // ...
    {
    float msecs = (clock() / (float) CLOCKS_PER_SEC) * 1000.0f;
    timer -= (long)msecs-timer;
    }
    

    An der Stelle (*) hat msecs einen Wert zwischen 0 und 300, obwohl dort der Prozess meist schon 5 Sekunden läuft. Noch erstaunlicher sind die Ergebnisse: der Timer hat am Ende zwischen 0 und 10 Millisekunden - der Request braucht aber über 50! An der Auflösung scheints nicht zu liegen, CLOCKS_PER_SEC ist bei mir 1 Million...

    Wieso ist mein Timer-Wert so komisch? Ich komme einfach nicht dahinter! oO

    Danke für Antworten im Voraus!
    voidpointer



  • Kann mir jemand eine Alternative zu clock() unter Linux nennen, die POSIX Standard ist?


Anmelden zum Antworten