Heim >Backend-Entwicklung >C++ >Wie kann ich die Codeausführungszeit in C genau messen?

Wie kann ich die Codeausführungszeit in C genau messen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 13:58:12957Durchsuche

How Can I Precisely Measure Code Execution Time in C  ?

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:

  1. Rufen Sie GetTimeMs64() auf, bevor Sie den Code ausführen.
  2. Führen Sie den Code aus.
  3. Rufen Sie GetTimeMs64() erneut auf, nachdem Sie den Code ausgeführt haben.
  4. Subtrahieren Sie das erste Mal vom zweiten Mal, um die verstrichene Zeit zu erhalten Millisekunden.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn