Zeit vs gettimeofday c ++
Des Befehls time gibt die verstrichene Zeit bei der Ausführung eines Befehls.
Wenn ich ein "gettimeofday()" am Anfang des Befehls aufrufen (mit system() ), und eine am Ende des Gesprächs, und machen Sie einen Unterschied, es kommt nicht dasselbe raus. (es ist nicht ein sehr kleiner Unterschied)
Kann jemand erklären, was ist der genaue Unterschied zwischen den beiden Verwendungen und was ist der beste Weg, um die Zeit der Ausführung einer call?
Dank.
Es sei denn, Sie haben eine lange laufende Aufgabe,
Könnte Sie klären, ob
Ich war eigentlich bezogen auf den shell-Befehl Zeit!
time()
ist eine schreckliche Idee. Es zählt nur Sekunden, whilist gettimeofday()
zurückkehren können Mikrosekunden.Könnte Sie klären, ob
time
bezieht sich auf die C-Bibliothek-Funktion, oder den shell-Befehl? Und können Sie uns Beispiele für den Unterschied, den Sie sehen?Ich war eigentlich bezogen auf den shell-Befehl Zeit!
InformationsquelleAutor sushant-hiray | 2013-03-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unix
time
Befehl misst die gesamte Ausführung des Programms, einschließlich der Zeit für das system zum laden der binären und alle seine Bibliotheken und die Zeit, die es dauert, um aufzuräumen alles, was einmal Ihr Programm fertig ist.Auf der anderen Seite
gettimeofday
können nur arbeiten in Ihrem Programm, nachdem es vollständig geladen wurde (für die erste Messung), und bevor es gereinigt ist (für die Letzte Messung).Welches ist am besten? Hängt davon ab, was Sie Messen wollen... 😉
InformationsquelleAutor syam
Es ist alles davon abhängig, was Sie timing. Wenn Sie versuchen, die Zeit etwas in Sekunden, dann
time()
ist wahrscheinlich Ihre beste Wette. Wenn Sie eine höhere Auflösung benötigen, als, dass, dann würde ich überlegengettimeofday()
, das gibt bis zu Mikrosekunde Auflösung (1 /1000000th einer Sekunde).Wenn Sie benötigen, eine noch höhere Auflösung als das, erwägen Sie die Verwendung
clock()
undCLOCKS_PER_SECOND
, nur beachten Sie, dassclock()
ist nur selten eine genaue Beschreibung für die Menge der Zeit, sondern die Anzahl der CPU-Zyklen verwendet.InformationsquelleAutor Richard J. Ross III
time()
gibt die Zeit seit Epoche in Sekunden.gettimeofday():
gibt:InformationsquelleAutor Zaffy
Jedes mal ein unterschiedliches Präzision. In C++11 verwenden Sie std::chrono:
InformationsquelleAutor David