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

Wie kann ich die Ausführungszeit einer Funktion in C genau messen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-20 12:25:10250Durchsuche

How Can I Accurately Measure Function Execution Time in C  ?

Funktionsausführungszeit genau in C messen

Hintergrund

Die Ausführungszeit einer bestimmten Funktion in C kann bestimmt werden entscheidend für die Leistungsanalyse und -optimierung. Natives Linux bietet begrenzte Möglichkeiten zur genauen Zeitmessung, und die Funktion „process_user_cpu_clock“ von Boost.Chrono zielt nur auf die Benutzer-CPU-Zeit ab und umfasst nicht die gesamte Funktionsausführungszeit.

Eine präzisere Lösung

Glücklicherweise hat C 11 mit der std::chrono::high_resolution_clock eine vielseitige Zeitmessfunktion eingeführt Kopfzeile. Diese hochauflösende Uhr bietet eine genaue und umfassende Messung der Funktionsausführungszeit.

Codebeispiel

#include <chrono>

/* Only for this example. */
#include <iostream>
#include <thread>

void long_operation() {
    /* Simulating a long, intensive operation. */
    using namespace std::chrono_literals;
    std::this_thread::sleep_for(150ms);
}

int main() {
    using std::chrono::high_resolution_clock;
    using std::chrono::duration_cast;
    using std::chrono::duration;
    using std::chrono::milliseconds;

    auto t1 = high_resolution_clock::now();
    long_operation();
    auto t2 = high_resolution_clock::now();

    /* Milliseconds as an integer. */
    auto ms_int = duration_cast<milliseconds>(t2 - t1);

    /* Milliseconds as a double. */
    duration<double, std::milli> ms_double = t2 - t1;

    std::cout << ms_int.count() << "ms\n";
    std::cout << ms_double.count() << "ms\n";
    return 0;
}

Dieses Codefragment zeigt, wie man high_resolution_clock zum Messen verwendet Dauer der long_operation-Funktion. Die Variablen t1 und t2 zeichnen Zeitstempel vor und nach der Ausführung der Funktion auf, und die Differenz wird zur Anzeige in Millisekunden umgewandelt.

Durch den Einsatz dieser Technik können Sie unabhängig davon präzise und konsistente Messungen der Funktionsausführungszeit erhalten CPU-Lastschwankungen sorgen für zuverlässige Leistungsbewertungen.

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