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

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

Linda Hamilton
Linda HamiltonOriginal
2024-12-03 00:42:10159Durchsuche

How Can I Accurately Measure the Execution Time of Short C   Code Snippets?

Berechnung der Ausführungszeit von C-Code-Snippets mit Präzision

Die genaue Bestimmung der Ausführungszeit von Code-Snippets in C ist für die Leistungsanalyse und -optimierung von entscheidender Bedeutung. Allerdings reicht die Standardfunktion „clock()“ möglicherweise nicht aus, um kurze Codesegmente zu messen, und gibt häufig „0 Sekunden“ zurück.

Um diese Einschränkung zu beheben, besteht ein genauerer Ansatz darin, die Funktion „GetTimeMs64()“ zu verwenden, die misst verstrichene Zeit in Millisekunden seit der UNIX-Epoche, unabhängig von der Plattform (Windows oder Linux).

Implementierung von GetTimeMs64()

#include <ctime>
#include <chrono>

uint64_t GetTimeMs64() {
    return std::chrono::duration_cast<std::chrono::milliseconds>(
        std::chrono::system_clock::now().time_since_epoch()
    ).count();
}

GetTimeMs64() bietet ein hohes Maß an Präzision mit einer Granularität von 1 Millisekunde auf den meisten Plattformen.

Verwendung

Zur Berechnung der Ausführungszeit Führen Sie zum Erstellen eines Codeausschnitts die folgenden Schritte aus:

uint64_t startTime = GetTimeMs64();
// Execute the code snippet
uint64_t endTime = GetTimeMs64();
double executionTime = static_cast<double>(endTime - startTime) / 1000.0;

Die Variable „executionTime“ enthält jetzt die Dauer des Codeausschnitts in Sekunden, mit hoher Präzision.

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