Ausführungszeit mit Präzision in C messen
Eine genaue Messung der Ausführungszeit ist für die Optimierung der Codeleistung unerlässlich. In C bietet die Funktion clock() eine Möglichkeit, die verstrichene Zeit zu berechnen. Bei kurzen Codeausschnitten kann es jedoch zu unzuverlässigen Ergebnissen kommen.
Einschränkungen von clock()
Bei kleinen Eingaben oder einzeiligen Anweisungen meldet clock() häufig die Ausführung Zeiten von „0 Sekunden“. Diese Diskrepanz entsteht, weil die Funktion „clock()“ je nach System eine Granularität von Millisekunden oder Nanosekunden aufweist. Für Ausführungsdauern, die kürzer als diese Granularität sind, rundet clock() auf Null ab.
Lösung: Verwendung von GetTimeMs64()
Um diese Einschränkung zu überwinden, sollten Sie die Verwendung der Dienstprogrammfunktion in Betracht ziehen GetTimeMs64(). Diese Funktion misst genau die seit der Unix-Epoche verstrichene Zeit in Millisekunden und funktioniert sowohl auf Windows- als auch auf Linux-Plattformen.
Die Funktion GetTimeMs64() nutzt die Systemuhr unter Windows mithilfe von GetSystemTimeAsFileTime(). Unter Linux wird gettimeofday() verwendet, um die aktuelle Uhrzeit abzurufen. Es wandelt die erhaltenen Werte in Millisekunden um und subtrahiert den Offset von der Unix-Epoche, um sie an den Unix-Zeitstandard anzupassen.
Implementierung
Um GetTimeMs64() zu verwenden, schließen Sie einfach Folgendes ein den folgenden Code in Ihrem Programm:
#include <Windows.h> // or #include <sys/time.h> #include <ctime> uint64 GetTimeMs64() { // Code from provided solution goes here }
Um die Ausführungszeit eines Codes zu berechnen Snippet:
Beispielverwendung:
uint64 startTime = GetTimeMs64(); // Your code here uint64 endTime = GetTimeMs64(); cout << "Execution time: " << (endTime - startTime) / 1000.0 << " seconds" << endl;
Diese Methode liefert genaue Messungen der Ausführungszeit, selbst für kleine Codeausschnitte oder kurze Anweisungen. Es ermöglicht Entwicklern, ihren Code effektiv zu optimieren und Leistungsverbesserungen präzise zu messen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Codeausführungszeit in C genau messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!