Clock() függvény a C nyelvben

Clock Fuggveny A C Nyelvben



Ebben Linux tipp cikkében megmutatjuk, hogyan kell használni a óra() függvény, amely a C nyelvben elérhető erőforrások egyike, egy adott folyamat vagy szál végrehajtási idejének mérésére.

Bár ezek az időtöredékek jelentéktelennek tűnnek, vannak olyan kritikus esetek, amikor ezen kis időtöredékek mérésének és kiszámításának képessége kritikus tényező magának a rendszernek vagy folyamatnak a pontosságában. Elméleti leírást adunk arról, hogyan óra() működik, ismertesse működését és az erre a célra használt mértékegységeket.







Ezután gyakorlati példák segítségével, amelyek kódrészleteket és képeket tartalmaznak, meglátjuk, hogyan lehet ezt a funkciót világosan és részletesen megvalósítani a kritikus idők mérésére a valós idejű folyamatokban különböző rendszerekben.



Óra() függvény szintaxisa:



óra_t óra ( üres )





Clock() Funkció leírása C nyelven

A clock() függvény meghívásakor üres. Nem tartalmaz bemeneti argumentumokat, és visszaadja az óra ketyegésének számát „clock_t”-ben a hívás időpontjában.

Az impulzusszámlálás nulláról indul az alkalmazás indításakor, és addig tart, amíg a felhasználó vagy a rendszer ki nem lép belőle, és körülbelül 72 percenként túlcsordulással nullázódik. A clock() függvény nem módosítja és nem vezérli ezt a számlálót; csak akkor kapja meg az értékét, ha hívják.



A program teljes végrehajtási idejének méréséhez csak egyszer kell meghívnunk a clock()-t a program végén. A program egyik pontjától a másikig eltelt idő méréséhez meg kell hívnunk a clock( ) függvényt, és ki kell számítanunk a két kapott adatot.

A számítás a két hívás között eltelt ketyegés meghatározására óra() A funkció úgy történik, hogy az első hívás eredményét kivonjuk a második hívás eredményéből. Nézzünk egy példát a program egyik pontjától a másikig eltelt idő meghatározására.

Az óra() függvényt a „time.h” fejlécfüggvények határozzák meg. A használatához be kell helyeznünk a „.c” vagy „.h” kódfájlunkba, ahogy az a következő képen is látható.

#include

Az eltelt óra ketyegése a program egyik pontjáról a másikra az Óra() funkcióval

Ebben a példában látni fogjuk, hogyan lehet megszerezni a program egyik pontjától a másikig eltelt tickek számát. Ez a két pont megfelel a két hívás egyikének óra() funkciót, ill. Ennek megértéséhez lássuk a következő kódot:





#include

#include



üres fő ( )



{

clock_t ticks_ini, ticks_end;

kettős kullancsok;

ticks_ini = óra ( ) ; // mérés kezdete

printf ( 'jelöli az init mértéket  %ld \n ' , ticks_ini ) ;

számára ( int a = 0 ; a < = 456450 ; a++ ) ;



ticks_end = óra ( ) ; // mérje meg a stopot

kullancsok = kullancsok_vége - ticks_ini;

printf ( 'kulcsok vége mértéke  %ld \n ' ,  ticks_end ) ;

printf ( 'kulcsok telt el az intézkedés között  %f \n ' ,  kullancsok ) ;

Visszatérés ;

}



Először létrehozzuk a két változót, ticks_ini és ticks_end , amelyben a clock() eredményét tároljuk a két hívásában. Kiszámítjuk, hogy megkapjuk az eltelt tickek számát és az egész számot kullancsok , amelyben az összes eltelt kullancs végeredményét tároljuk.

Ezután hívjuk a óra() funkciót a „fő” menüben, és lekérjük a korábban meghatározott órajeleket a ticks_ini változó, amely a program indítása óta a függvény első hívásáig eltelt. Ennek az értéknek a megjelenítéséhez a printf() függvényt használjuk.

Ezen késleltetés után, amivel létrehoztunk számára , hívjuk a óra() funkciót másodszor is, hogy a kullancsok száma elérje ezt a pontot. Az eredményt a printf() függvénnyel kiírjuk a képernyőre. Ezt követően megkapjuk az első és a második hívás között eltelt tickek pontos számának eredményét óra() kivonással ticks_ini tól től ticks_end és az eredmény eltárolása a változó tickben, amit printf()-el kiadunk a konzolra.

Így megkapjuk a kód egyik pontjából a másikba eltelt pipákat.

Hogyan konvertálhatja át a megszerzett tickek számát másodpercekre a Clock() függvény segítségével

Ha megvan a program indítása óta vagy az egyik ponttól a másikig eltelt jelölések száma, ezt a tickben kifejezett időt átválthatjuk másodpercekre úgy, hogy az előző példa eredményét elosztjuk az előre meghatározott időbeli konstanssal.h ÓRA _PER_ SEC, ahogy a következő részlet mutatja:

kullancsok = ( ticks_end - ticks_ini ) / ( kettős ) CLOCKS_PER_SEC;

printf ( 'kullancsok másodpercek alatt teltek el a mérések között  %f \n ' ,  kullancsok ) ;

Következtetés

Ebben Linux tipp cikkében megmutattuk, hogyan kell megvalósítani a óra() funkciót az időmérés elvégzéséhez a rendszeróra ketyegében. Azt is elmagyaráztuk, hogyan mérheti ezeket az időket részben vagy egészben a futó alkalmazáson belül. Megmutattuk, hogyan konvertálhatja az eredményeket másodpercekre. Reméljük, hogy hasznosnak találta ezt a cikket. A C nyelvről további tippeket találhat cikkeinkben, amelyeket a webhely keresőjével találhat meg.