Uhrfunktion in der C -Sprache

Uhrfunktion in der C -Sprache

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

Obwohl diese Fraktionen der Zeit unbedeutend erscheinen, gibt es kritische Fälle, in denen die Fähigkeit, diese kleinen Zeitanteile zu messen und zu berechnen, kritische Faktoren für die Genauigkeit des Systems oder des Prozesses selbst sind. Wir werden eine theoretische Beschreibung darüber geben, wie Uhr() Arbeiten, erklären Sie den Betrieb und die für diesen Zweck verwendeten Messeinheiten.

Anschließend werden praktische Beispiele mit Codefragmenten und Bildern sehen, wie Sie diese Funktion auf klare und detaillierte Weise implementieren können, um die kritischen Zeiten in Echtzeitprozessen in verschiedenen Systemen zu messen.

Clock () Funktionssyntax:

clock_t clock (void)

Clock () Funktionsbeschreibung in C -Sprache

Die Clock () -Funktion ist leer, wenn sie aufgerufen werden. Es enthält keine Eingabeargumente und gibt die Anzahl der Zecken der Uhr zum Zeitpunkt des Anrufs in "clock_t" zurück.

Die Impulszahl beginnt bei Null, wenn die Anwendung gestartet wird und fortgesetzt wird, bis der Benutzer oder das System sie verlässt, und setzt durch Überlauf in ungefähr alle 72 Minuten auf Null zurück. Die Funktion Clock () ändert oder hat keine Kontrolle über diesen Zähler. es bekommt nur seinen Wert, wenn es aufgerufen wird.

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

Die Berechnung zur Bestimmung der verstrichenen Zecken zwischen zwei Aufrufen der Uhr() Die Funktion erfolgt durch Subtrahieren des Ergebnisses des ersten Aufrufs vom Ergebnis des zweiten Aufrufs. Sehen wir uns ein Beispiel an, um die Höhe der verstrichenen Zeit von einem Punkt des Programms zum anderen zu bestimmen.

Der Uhr() Funktion ist in „Zeit.h ”Headerfunktionen. Wir müssen es in unsere aufnehmen “.c ”oder“.H ”Codedatei, wie im folgenden Bild gezeigt, um sie zu verwenden.

#enthalten

So erhalten Sie die verstrichenen Uhr Ticks von einem Punkt im Programm zum anderen mit der Clock () -Funktion

In diesem Beispiel werden wir sehen, wie die Anzahl der verstrichenen Zecken von einem Punkt im Programm zum anderen erhalten kann. Diese beiden Punkte entsprechen einem der beiden Aufrufe an die Uhr() Funktion jeweils. Um dies zu verstehen, sehen wir den folgenden Code:


#enthalten
#enthalten
void main ()

clock_t ticks_ini, ticks_end;
doppelte Zecken;
ticks_ini = clock (); // Start messen
printf ("ticks init messen %ld \ n", Ticks_ini);
für (int a = 0; a<=456450; a++);
ticks_end = clock (); // Stop messen
ticks = ticks_end - ticks_ini;
printf ("Ticks End Mess %ld \ n", ticks_end);
printf ("Zecken zwischen Mess %F \ n", Zecken);
zurückkehren;

Erstens erstellen wir die beiden Variablen, ticks_ini Und ticks_end, in dem wir das Ergebnis von Clock () in seinen beiden Aufrufen speichern. Wir berechnen es, um die Anzahl der verstrichenen Zecken und die Ganzzahl zu erhalten Zecken, in dem wir das Endergebnis der Gesamtzahl verstrichene Zecken speichern.

Dann rufen wir das an Uhr() Funktion in unserem „Haupt“ und abrufen ticks_ini Variable, die seit Beginn des Programms bis zum ersten Aufruf dieser Funktion verstrichen ist. Wir verwenden die Funktion printf (), um diesen Wert anzuzeigen.

Nach dieser Verzögerung, mit der wir erstellt haben für, Wir nennen das Uhr() Funktion für ein zweites Mal, um die Anzahl der Zecken bis zu diesem Punkt zu erhalten. Wir geben das Ergebnis mit der Funktion printf () auf den Bildschirm aus. Wir erhalten dann das Ergebnis der genauen Anzahl der Zecken, die zwischen dem ersten und dem zweiten Anruf zu verstrichen sind Uhr() durch Subtrahieren ticks_ini aus ticks_end und speichern das Ergebnis in den Variablen -Zecken, die wir mit printf () an die Konsole ausgeben, ().

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

So konvertieren Sie die Anzahl der Zecken, die mit der Funktion clock () in Sekunden erhalten wurden

Sobald wir die Anzahl der Zecken haben, die seit Beginn des Programms verstrichen sind oder von einem Punkt zum anderen, können wir diese Zeit in Ticks auf Sekunden umwandeln, indem wir das Ergebnis des vorherigen Beispiels durch die vordefinierte Konstante zeitweise teilen.H Uhren _per_ Sec, Wie im folgenden Snippet gezeigt:

ticks = (ticks_end - ticks_ini)/(double) clocks_per_sec;
printf ("Zecken, die in Sekunden zwischen Mess %F \ n" verstrichen sind), Zecken);

Abschluss

In diesem Linux -Hinweis Artikel, wir haben Ihnen gezeigt, wie Sie die implementieren können Uhr() Funktionen, um die Zeitmessungen in Zecken 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 konvertieren können. Wir hoffen, dass Sie diesen Artikel nützlich gefunden haben. In unseren Artikeln finden Sie weitere Tipps zur C -Sprache, die Sie mit der Suchmaschine der Website finden können.