2017-02-03 3 views
0

ich als „Schlaf“ funktioniert, aber es scheint nicht wirklich gezählt, wie folgt aus:Funktioniert Linux "clock()" Funktion in "Schlaf" -Zeit eines Prozesses?

#include<iostream> 
#include<unistd.h> 
#include<time.h> 
using namespace std; 
int main(){ 
    clock_t t1=clock(); 
    sleep(2); 
    clock_t t2=clock(); 
    cout<<t2-t1<<endl; 
    return 0; 
} 

Es gibt eine sehr kleine Anzahl von Millisekunden Zeitintervall zwischen zwei „Uhr()“ Anrufe. Ich habe erwartet, dass es 2.000.000 melden sollte.

Ist meine Schätzung richtig? man page gibt keine Antwort auf meine Frage. Gibt es eine bessere Funktion, um die Zeit zwischen 2 Zeilen Code zu erhalten?

+0

Verwendung gettimeofday zu kompilieren vergessen verwenden() – alex

Antwort

1

clock(3) gibt Sekunden nicht zurück, es gibt die Anzahl der Sekunden zurück, geteilt durch CLOCKS_PER_SEC (Wert 1000000).

In C++, möchten Sie wahrscheinlich

auto t1 = std::chrono::system_clock::now(); 
sleep(2) 
auto t2 = std::chrono::system_clock::now(); 
auto duration = t2 - t1; 
std::cout << duration.count() << endl; 

Nicht mit -std=c++11

Verwandte Themen