2012-06-18 5 views
10

Ich habe gesucht, aber ich kann nicht finden, ein Äquivalent zu der Matlab Tic/Toc-Funktion einfach auf der Konsole anzuzeigen, wie lange Zeit dauerte das Programm, um seine Verarbeitung zu tun. (Im Idealfall würde Ich mag die tic setzen (Start-Timer) und toc (Ende Timer) überall im Programm.Matlab Tic Toc Äquivalent in C++

Irgendwelche Vorschläge?

+1

Das hat nichts mit Kompilierung zu tun. – Dennis

Antwort

17

Ich habe gefunden wonach ich gesucht habe. umfassen:

#include <ctime> 

Dann am Anfang:

time_t tstart, tend; 
tstart = time(0); 

Und schließlich vor dem Ende:

tend = time(0); 
cout << "It took "<< difftime(tend, tstart) <<" second(s)."<< endl; 
+0

Die Genauigkeit für time() ist Sekunden, während MATLAB tic und toc Millisekunden oder besser bietet. – NoahR

+1

@NoahR 'difftime()' gibt ein 'double' zurück, was eine bessere Genauigkeit als 1 s ergibt. Die tatsächliche Genauigkeit ist systemabhängig, wie es wahrscheinlich auch in MATLAB ist. – glglgl

+0

Unter C verwenden Sie '#include '. Aber beachte, dass es zumindest unter Windows für mich immer volle Sekunden zurückgibt, obwohl der Rückgabetyp doppelt ist. Der Millisekunden-Teil ist Nullen. –

3

Wenn Sie auf Linux sind, können Sie die Funktion nutzen

clock_gettime(); 

wenn auf Windows versuchen

QueryPerformanceCounter() 

Sie diese für bestimmte Implementierungsdetails googeln kann. andere Betriebssysteme ich kenne nicht. Es gibt zweifellos viele andere Möglichkeiten, die zu erreichen Gleiche Sache, aber wenn Sie keine anderen Antworten bekommen, sind diese ein vernünftiger Ort, um zu beginnen.