Clock()-Funktion in C-Sprache

Clock Funktion In C Sprache



In diesem Linux-Tipp Artikel zeigen wir Ihnen, wie Sie die verwenden Uhr() Funktion, eine der in der Sprache C verfügbaren Ressourcen, um die Ausführungszeiten eines bestimmten Prozesses oder Threads zu messen.

Obwohl diese Zeitabschnitte unbedeutend erscheinen, gibt es kritische Fälle, in denen die Fähigkeit, diese kleinen Zeitabschnitte zu messen und zu berechnen, entscheidende Faktoren für die Genauigkeit des Systems oder Prozesses selbst sind. Wir werden eine theoretische Beschreibung geben, wie Uhr() funktioniert, erläutern Sie seine Funktionsweise und die dafür verwendeten Maßeinheiten.







Anschließend zeigen wir anhand praktischer Beispiele mit Codefragmenten und Bildern, wie Sie diese Funktion übersichtlich und detailliert implementieren können, um die kritischen Zeiten in Echtzeitprozessen in verschiedenen Systemen zu messen.



Clock()-Funktionssyntax:



clock_t Uhr ( Leere )





Clock() Funktionsbeschreibung in C-Sprache

Die Funktion clock() ist leer, wenn sie aufgerufen wird. Sie enthält keine Eingabeargumente und gibt die Anzahl der Ticks der Uhr in „clock_t“ zum Zeitpunkt des Aufrufs zurück.

Die Impulszählung beginnt bei Null, wenn die Anwendung gestartet wird, und wird fortgesetzt, bis der Benutzer oder das System sie beendet, wobei sie durch Überlauf etwa alle 72 Minuten auf Null zurückgesetzt wird. Die clock()-Funktion ändert oder kontrolliert diesen Zähler nicht; es erhält seinen Wert nur, wenn es aufgerufen wird.



Um die Gesamtausführungszeit des Programms zu messen, müssen wir clock() nur einmal am Ende des Programms aufrufen. Um die Zeit zu messen, die von einem Punkt des Programms zum anderen verstrichen ist, müssen wir die Funktion clock() aufrufen und die beiden erhaltenen Daten berechnen.

Die Berechnung zur Ermittlung der verstrichenen Ticks zwischen zwei Aufrufen der Uhr() Die Funktion wird ausgeführt, indem das Ergebnis des ersten Aufrufs vom Ergebnis des zweiten Aufrufs subtrahiert wird. Betrachten wir ein Beispiel, um die Menge der verstrichenen Zeit von einem Punkt des Programms zum anderen zu bestimmen.

Das Uhr() Die Funktion ist in den Header-Funktionen „time.h“ definiert. Wir müssen es in unsere „.c“- oder „.h“-Codedatei aufnehmen, wie im folgenden Bild gezeigt, um es verwenden zu können.

#include

So erhalten Sie mit der Clock()-Funktion die verstrichenen Takte von einem Punkt im Programm zu einem anderen

In diesem Beispiel werden wir sehen, wie man die Anzahl der verstrichenen Ticks von einem Punkt im Programm zum anderen erhält. Diese beiden Punkte entsprechen einem der beiden Aufrufe der Uhr() Funktion bzw. Um dies zu verstehen, sehen wir uns den folgenden Code an:





#include

#include



ungültige Hauptsache ( )



{

clock_t ticks_ini, ticks_end;

doppelte Häkchen;

ticks_ini = Uhr ( ) ; // Messbeginn

Druckf ( 'Ticks Anfangsmaß  %ld \n ' , ticks_ini ) ;

zum ( int a = 0 ; a < = 456450 ; a++ ) ;



ticks_end = Uhr ( ) ; // Stopp messen

ticks = ticks_end - ticks_ini;

Druckf ( 'Ticks beenden Takt  %ld \n ' ,  ticks_end ) ;

Druckf ( 'Ticks verstrichen zwischen Takt  %f \n ' ,  Häkchen ) ;

Rückkehr ;

}



Zuerst erstellen wir die beiden Variablen, ticks_ini und ticks_end , in der wir das Ergebnis von clock() in seinen beiden Aufrufen speichern. Wir berechnen es, um die Anzahl der verstrichenen Ticks und die Ganzzahl zu erhalten Zecken , in dem wir das Endergebnis der insgesamt verstrichenen Ticks speichern.

Dann rufen wir die an Uhr() Funktion in unserer „main“ und ruft die zuvor definierten Clock-Ticks in der ab ticks_ini Variable, die seit Programmstart bis zum ersten Aufruf dieser Funktion vergangen ist. Wir verwenden die Funktion printf(), um diesen Wert anzuzeigen.

Nach dieser Verzögerung, die wir mit erstellt haben zum , nennen wir die Uhr() Funktion ein zweites Mal, um die Anzahl der Ticks bis zu diesem Punkt zu erhalten. Das Ergebnis geben wir mit der Funktion printf() auf dem Bildschirm aus. Als Ergebnis erhalten wir dann die exakte Anzahl an Ticks, die zwischen dem ersten und zweiten Aufruf verstrichen sind Uhr() durch Subtrahieren ticks_ini aus ticks_end und speichern das Ergebnis in der Variablen ticks, die wir mit printf() auf der Konsole ausgeben.

Auf diese Weise erhalten wir die Ticks, die von einem Punkt zum anderen im Code verstrichen sind.

So konvertieren Sie die Anzahl der erhaltenen Ticks mit der Clock()-Funktion in Sekunden

Sobald wir die Anzahl der Ticks haben, die seit dem Start des Programms oder von einem Punkt zum anderen vergangen sind, können wir diese in Ticks ausgedrückte Zeit in Sekunden umwandeln, indem wir das Ergebnis des vorherigen Beispiels durch die vordefinierte Konstante in time.h dividieren UHREN _PER_ SEKUNDE, wie im folgenden Ausschnitt gezeigt:

Zecken = ( ticks_end - ticks_ini ) / ( doppelt ) CLOCKS_PER_SEC;

Druckf ( 'Ticks verstrichen in Sekunden zwischen Takt  %f \n ' ,  Häkchen ) ;

Fazit

In diesem Linux-Tipp Artikel haben wir Ihnen gezeigt, wie Sie die implementieren Uhr() Funktion, um die Zeitmessungen in Ticks der Systemuhr vorzunehmen. Wir haben auch erklärt, wie Sie alle oder einen Teil dieser Zeiten innerhalb der laufenden Anwendung messen können. Wir haben Ihnen gezeigt, wie Sie die Ergebnisse in Sekunden umrechnen. Wir hoffen, dass Sie diesen Artikel hilfreich fanden. Weitere Tipps zur Sprache C finden Sie in unseren Artikeln, die Sie über die Suchmaschine der Website finden können.