Heim >Backend-Entwicklung >C++ >Wie kann ich die verstrichene Zeit in C und C genau messen?
Effiziente Messung der verstrichenen Zeit in C und C
Die genaue Messung der verstrichenen Zeit ist für die Leistungsanalyse in der Programmierung von entscheidender Bedeutung. Allerdings kann die Standard-C-Funktion time() für Aufgaben von kurzer Dauer unzuverlässig sein.
Verwendung von gettimeofday() in C
Um dieses Problem zu beheben, können C-Programmierer dies tun Verwenden Sie die Funktion gettimeofday(), die die aktuelle Uhrzeit mit Mikrosekundengenauigkeit zurückgibt. Hier ist ein Beispiel:
#include <sys> struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Start time // Perform long-running tasks gettimeofday(&endTV, NULL); // End time time_t diffSeconds = endTV.tv_sec - startTV.tv_sec; long diffMicroseconds = endTV.tv_usec - startTV.tv_usec; printf("Time taken: %ld seconds, %ld microseconds\n", diffSeconds, diffMicroseconds);</sys>
Verwendung von std::chrono in C
In C bietet die std::chrono-Bibliothek eine modernere und tragbarere Lösung zum Messen verstrichene Zeit. Betrachten Sie dieses Beispiel:
#include <chrono> using namespace std::chrono; auto begin = steady_clock::now(); // Start time // Perform long-running tasks auto end = steady_clock::now(); // End time duration<double nano> diff = end - begin; cout <p><strong>Verstehen der Ergebnisse</strong></p> <p>Die Ausgabe von gettimeofday() und std::chrono gibt einen Zeitunterschied in Sekunden und Mikrosekunden zurück/ Nanosekunden. Zum Beispiel:</p> <ul> <li>Benötigte Zeit: 4 Sekunden, 25 Mikrosekunden (mit gettimeofday())</li> <li>Benötigte Zeit: 26.339 Mikrosekunden (mit std::chrono)</li> </ul> <p>Im ersten Beispiel beträgt die verstrichene Zeit 4,025 Sekunden, während im zweiten Beispiel es sind 0,026339 Sekunden. Beachten Sie, dass std::chrono standardmäßig Nanosekunden zurückgibt, daher müssen Sie diese bei Bedarf möglicherweise manuell in Mikrosekunden oder Sekunden umrechnen.</p></double></chrono>
Das obige ist der detaillierte Inhalt vonWie kann ich die verstrichene Zeit in C und C genau messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!