Heim >Backend-Entwicklung >C++ >Wie kann ich die Ausführungszeit eines C-Code-Snippets genau messen?

Wie kann ich die Ausführungszeit eines C-Code-Snippets genau messen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 15:00:16218Durchsuche

How Can I Accurately Measure the Execution Time of a C   Code Snippet?

So berechnen Sie die Ausführungszeit eines Codeausschnitts genau in C

Das Messen der Ausführungszeit eines Codeausschnitts ist entscheidend für die Optimierung der Codeleistung. In diesem Artikel wird untersucht, wie Sie die Ausführungszeit eines C-Code-Snippets effektiv berechnen und so die Genauigkeit auch bei kurzen Anweisungen oder kleinen Eingaben gewährleisten können.

Einschränkungen der Uhr:

Die Uhr ()-Funktion hat trotz ihrer weiten Verbreitung Einschränkungen bei der Messung kurzer Dauern. Es gibt die vom Prozess verbrauchte CPU-Zeit zurück, die grob sein kann und bei kurzen Aufgaben zu „0 Sekunden“-Ergebnissen führen kann.

Lösung: Verwenden der GetTimeMs64()-Funktion:

Um diese Einschränkungen zu überwinden, bietet die Funktion GetTimeMs64() eine genauere Messung der verstrichenen Zeit. Es nutzt die Systemuhr sowohl unter Windows als auch unter Linux und liefert genaue Ergebnisse auch für Minutendauer.

Implementierungsdetails:

Die Funktion GetTimeMs64() ermittelt die Anzahl der Millisekunden seit der UNIX-Ära. Es funktioniert wie folgt:

  • Windows:

    • Ruft die Systemzeit als FILETIME ab und konvertiert sie in eine LARGE_INTEGER-Struktur.
    • Passt das Ergebnis an die UNIX-Epochenzeit an Millisekunden.
  • Linux:

    • Erhält die aktuelle Zeit mit gettimeofday().
    • Konvertiert der Mikrosekundenwert in Millisekunden.
    • Fügt den Sekundenwert hinzu, ebenfalls konvertiert in Millisekunden.

Verwendung:

Um die Ausführungszeit eines Codeausschnitts mit der Funktion GetTimeMs64() zu messen:

  1. Fügen Sie den GetTimeMs64.h-Header ein Datei.
  2. Rufen Sie GetTimeMs64() auf, bevor Sie das Code-Snippet ausführen.
  3. Rufen Sie GetTimeMs64() erneut auf, nachdem die Ausführung des Code-Snippets abgeschlossen ist.
  4. Berechnen Sie die verstrichene Zeit, indem Sie die anfängliche Zeit subtrahieren Zeit vom Finale Zeit.

Vorteile von GetTimeMs64() Funktion:

  • Präzision: Bietet genauere Ergebnisse, insbesondere bei kurzen Zeiträumen .
  • Plattformübergreifend: Funktioniert effektiv auf beiden Windows- und Linux-Systeme.
  • Thread-Sicherheit:Sichere Verwendung in Multithread-Umgebungen.

Überlegungen:

  • Die Zeitgranularität für GetTimeMs64() beträgt unter Windows normalerweise 15 ms und kann variieren Linux.
  • Diese Funktion misst die verstrichene Zeit, die systembedingte Verzögerungen beinhalten kann.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ausführungszeit eines C-Code-Snippets 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