Verstrichene Zeit einfach messen
Frage:
Beim Messen der verstrichenen Zeit in einem Programm mit time(), warum könnten die Vorher- und Nachher-Werte so bleiben? gleich?
Erklärung:
time() gibt die aktuelle Zeit in Sekunden seit der Epoche zurück. Wenn die zu messende Zeitspanne kurz ist, ist der Unterschied zwischen den Vorher- und Nachher-Werten möglicherweise zu gering, um erkannt zu werden.
Lösung:
Um kurz genau zu messen Zeitspannen, erwägen Sie die Verwendung alternativer Methoden:
C Structured Time Messung:
struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Execute time-consuming tasks gettimeofday(&endTV, NULL); timersub(&endTV, &startTV, &diff); printf("**time taken = %ld %ld\n", diff.tv_sec, diff.tv_usec);
C 11 Style Precision Time Measurement:
#include <chrono> std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); // Execute time-consuming tasks std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::microseconds>(end - begin).count() << "[µs]" << std::endl; std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin).count() << "[ns]" << std::endl;
Das obige ist der detaillierte Inhalt vonWarum gibt „time()' manchmal vor und nach einer kurzen Aufgabe denselben Wert zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!