Clock() funkcija u jeziku C

Clock Funkcija U Jeziku C



U ovom Savjet za Linux članku, pokazat ćemo vam kako koristiti sat() funkcija, jedan od resursa dostupnih u jeziku C, za mjerenje vremena izvršenja određenog procesa ili niti.

Iako se ti dijelovi vremena čine beznačajnima, postoje kritični slučajevi u kojima su sposobnost mjerenja i izračunavanja tih malih dijelova vremena ključni čimbenici u točnosti samog sustava ili procesa. Dat ćemo teorijski opis kako sat() djela, objasniti njegov rad i mjerne jedinice koje u tu svrhu koristi.







Zatim ćemo, koristeći praktične primjere koji uključuju fragmente koda i slike, vidjeti kako možete implementirati ovu funkciju na jasan i detaljan način za mjerenje kritičnih vremena u procesima u stvarnom vremenu u različitim sustavima.



Sintaksa funkcije Clock():



sat_t sat ( poništiti )





Opis funkcije Clock() u jeziku C

Funkcija clock() je prazna kada se pozove. Ne sadrži ulazne argumente i vraća broj otkucaja sata u 'clock_t' u vrijeme poziva.

Brojanje pulsa počinje od nule kada se aplikacija pokrene i nastavlja se sve dok korisnik ili sustav ne izađu iz nje, vraćajući se na nulu prekoračenjem otprilike svake 72 minute. Funkcija clock() ne modificira niti ima kontrolu nad ovim brojačem; svoju vrijednost dobiva samo kada se pozove.



Da bismo izmjerili ukupno vrijeme izvršenja programa, trebamo pozvati clock() samo jednom na kraju programa. Da bismo izmjerili vrijeme proteklo od jedne do druge točke programa, moramo pozvati funkciju clock( ) i izračunati dva dobivena podatka.

Izračun za određivanje proteklih otkucaja između dva poziva funkcije sat() funkcija se izvodi oduzimanjem rezultata prvog poziva od rezultata drugog poziva. Pogledajmo primjer kako bismo odredili količinu proteklog vremena od jedne do druge točke programa.

The sat() funkcija je definirana u funkcijama zaglavlja “time.h”. Moramo ga uključiti u našu datoteku koda '.c' ili '.h', kao što je prikazano na sljedećoj slici, kako bismo ga koristili.

#uključi

Kako prenijeti otkucaje proteklog sata s jedne točke u programu na drugu pomoću funkcije Clock().

U ovom primjeru ćemo vidjeti kako dobiti broj proteklih tikova od jedne do druge točke u programu. Ove dvije točke odgovaraju jednom od dva poziva na sat() funkcija, odnosno. Da bismo ovo razumjeli, pogledajmo sljedeći kod:





#include

#uključi



void glavni ( )



{

sat_t ticks_ini, ticks_end;

dvostruke  kvačice;

ticks_ini = sat ( ) ; // mjera početak

printf ( 'kvačice init mjere  %ld \n ' , ticks_ini ) ;

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



ticks_end = sat ( ) ; // mjera stop

ticks = ticks_end - ticks_ini;

printf ( 'označava kraj mjere  %ld \n ' ,  ticks_end ) ;

printf ( 'tikova proteklih između mjera  %f \n ' ,  kvačice ) ;

povratak ;

}



Prvo, kreiramo dvije varijable, ticks_ini i ticks_end , u koji pohranjujemo rezultat clock() u njegova dva poziva. Izračunavamo ga kako bismo dobili broj proteklih tikova i cijeli broj krpelja , u koji spremamo konačni rezultat ukupnih proteklih tikova.

Zatim pozivamo sat() funkciju u našem 'glavnom' i dohvaćanje prethodno definiranih otkucaja sata u ticks_ini varijabla koja je protekla od pokretanja programa do prvog poziva ove funkcije. Za prikaz ove vrijednosti koristimo funkciju printf().

Nakon ove odgode, koju smo stvorili s za , nazivamo sat() funkciju po drugi put da biste dobili broj otkucaja do ove točke. Rezultat ispisujemo na ekran s funkcijom printf(). Zatim dobivamo rezultat točnog broja otkucaja koji su prošli između prvog i drugog poziva sat() oduzimanjem ticks_ini iz ticks_end i pohranjivanje rezultata u varijablu ticks, koju šaljemo na konzolu s printf().

Na taj način dobivamo kvačice koje su prošle od jedne do druge točke koda.

Kako pretvoriti dobiveni broj tikova u sekunde pomoću funkcije Clock().

Jednom kada imamo broj taktova koji su protekli od pokretanja programa ili od jedne točke do druge, možemo ovo vrijeme izraženo u tikovima pretvoriti u sekunde dijeljenjem rezultata prethodnog primjera s unaprijed definiranom konstantom u vremenu.h SATOVA _PER_ SEC, kao što je prikazano u sljedećem isječku:

krpelji = ( ticks_end - ticks_ini ) / ( dvostruko ) CLOCKS_PER_SEC;

printf ( 'tikovi protekli u sekundama između mjere  %f \n ' ,  kvačice ) ;

Zaključak

U ovom Savjet za Linux članku, pokazali smo vam kako implementirati sat() funkcija za mjerenje vremena u otkucajima sistemskog sata. Također smo objasnili kako možete izmjeriti sva ili dio tih vremena unutar pokrenute aplikacije. Pokazali smo vam kako pretvoriti rezultate u sekunde. Nadamo se da vam je ovaj članak bio koristan. Više savjeta o jeziku C možete pronaći u našim člancima koje možete pronaći pomoću tražilice web stranice.