Funkce Clock() v jazyce C

Funkce Clock V Jazyce C



V tomhle Nápověda pro Linux článku, ukážeme vám, jak používat hodiny() funkce, jeden ze zdrojů dostupných v jazyce C, k měření doby provádění konkrétního procesu nebo vlákna.

Ačkoli se tyto zlomky času zdají nevýznamné, existují kritické případy, kdy schopnost měřit a vypočítat tyto malé zlomky času jsou kritickými faktory přesnosti systému nebo procesu jako takového. Uvedeme teoretický popis jak hodiny() práce, vysvětlete její fungování a měrné jednotky, které k tomuto účelu používá.







Potom na praktických příkladech, které zahrnují fragmenty kódu a obrázky, uvidíme, jak můžete tuto funkci implementovat jasným a podrobným způsobem k měření kritických časů v procesech v reálném čase v různých systémech.



Syntaxe funkce Clock():



clock_t hodiny ( prázdnota )





Popis funkce Clock() v jazyce C

Funkce clock() je při volání prázdná. Neobsahuje žádné vstupní argumenty a vrací počet tiků hodin v „clock_t“ v době volání.

Počítání pulsů začíná na nule při spuštění aplikace a pokračuje, dokud ji uživatel nebo systém neopustí, a vynuluje se přetečením přibližně každých 72 minut. Funkce clock() tento čítač neupravuje ani nemá nad ním kontrolu; svou hodnotu získá pouze při zavolání.



Abychom změřili celkovou dobu provádění programu, potřebujeme zavolat clock() pouze jednou na konci programu. Abychom změřili čas, který uplynul z jednoho bodu programu do druhého, musíme zavolat funkci clock() a vypočítat dvě získaná data.

Výpočet pro určení uplynulých tiků mezi dvěma voláními hodiny() funkce se provádí odečtením výsledku prvního volání od výsledku druhého volání. Podívejme se na příklad, abychom určili množství uplynulého času z jednoho bodu programu do druhého.

The hodiny() funkce je definována ve funkcích záhlaví „time.h“. Abychom jej mohli používat, musíme jej zahrnout do našeho souboru s kódem „.c“ nebo „.h“, jak je znázorněno na následujícím obrázku.

#include

Jak získat tikání uplynulých hodin z jednoho bodu v programu do druhého pomocí funkce Clock().

V tomto příkladu uvidíme, jak získat počet uplynulých tiků z jednoho bodu programu do druhého. Tyto dva body odpovídají jednomu ze dvou výzev k hodiny() funkce, resp. Abychom to pochopili, podívejme se na následující kód:





#include

#include



prázdný hlavní ( )



{

clock_t ticks_ini, ticks_end;

dvojité zaškrtnutí;

ticks_ini = hodiny ( ) ; // měřit začátek

printf ( 'Tcks init measure  %ld \n ' , ticks_ini ) ;

pro ( int A = 0 ; A < = 456450 ; a++ ) ;



ticks_end = hodiny ( ) ; // měřit stop

ticks = ticks_end - ticks_ini;

printf ( 'Ticks end measure  %ld \n ' ,  ticks_end ) ;

printf ( 'uběhlo mezi měřením %f \n ' ,  klíšťata ) ;

vrátit se ;

}



Nejprve vytvoříme dvě proměnné, ticks_ini a ticks_end , ve kterém uložíme výsledek clock() v jeho dvou voláních. Vypočítáme to, abychom získali počet uplynulých ticků a celé číslo klíšťata , do kterého ukládáme konečný výsledek celkových uplynulých tiků.

Poté zavoláme hodiny() fungovat v našem „hlavním“ a načíst dříve definovaná tikání hodin v ticks_ini proměnná, která uplynula od spuštění programu do prvního volání této funkce. K zobrazení této hodnoty používáme funkci printf().

Po tomto zpoždění, které jsme vytvořili s pro , nazýváme hodiny() funkci podruhé, abyste získali počet tiků do tohoto bodu. Výsledek vypíšeme na obrazovku pomocí funkce printf(). Poté získáme výsledek přesného počtu tiků, které uplynuly mezi prvním a druhým voláním hodiny() odečtením ticks_ini z ticks_end a uložení výsledku do proměnné ticks, kterou vypíšeme do konzole pomocí printf().

Tímto způsobem získáme klíšťata, která uplynula z jednoho bodu do druhého v kódu.

Jak převést počet získaných tiků na sekundy pomocí funkce Clock().

Jakmile máme počet tiků, které uplynuly od spuštění programu nebo z jednoho bodu do druhého, můžeme tento čas vyjádřený v tikátech převést na sekundy vydělením výsledku předchozího příkladu předdefinovanou konstantou v čase.h HODINY _PER_ SEC, jak je uvedeno v následujícím úryvku:

klíšťata = ( ticks_end - ticks_ini ) / ( dvojnásobek ) HODINY_ZA_SEC;

printf ( 'tikety uplynuly v sekundách mezi měřením  %f \n ' ,  klíšťata ) ;

Závěr

V tomhle Nápověda pro Linux článku jsme vám ukázali, jak implementovat hodiny() funkce pro provádění měření času v tikátech systémových hodin. Vysvětlili jsme také, jak můžete měřit všechny nebo část těchto časů v rámci běžící aplikace. Ukázali jsme vám, jak převést výsledky na sekundy. Doufáme, že vám tento článek byl užitečný. Další tipy ohledně jazyka C najdete v našich článcích, které můžete najít pomocí vyhledávače webu.