Clock() funkcija C valodā

Clock Funkcija C Valoda



Šajā Linux padoms rakstu, mēs parādīsim, kā izmantot pulkstenis () funkcija, kas ir viens no C valodā pieejamajiem resursiem, lai izmērītu konkrēta procesa vai pavediena izpildes laikus.

Lai gan šīs laika daļas šķiet nenozīmīgas, ir kritiski gadījumi, kad spēja izmērīt un aprēķināt šīs mazās laika daļas ir kritiski faktori pašas sistēmas vai procesa precizitātē. Mēs sniegsim teorētisku aprakstu, kā pulkstenis () darbus, izskaidro tā darbību un mērvienības, ko tā izmanto šim nolūkam.







Pēc tam, izmantojot praktiskus piemērus, kas ietver koda fragmentus un attēlus, mēs redzēsim, kā jūs varat ieviest šo funkciju skaidrā un detalizētā veidā, lai izmērītu kritiskos laikus reāllaika procesos dažādās sistēmās.



Pulkstenis() funkcijas sintakse:



pulkstenis_t pulkstenis ( nederīgs )





Clock() Funkcijas apraksts C valodā

Funkcija clock() ir tukša, kad tiek izsaukta. Tas nesatur ievades argumentus un atgriež pulksteņa atzīmju skaitu “clock_t” zvana laikā.

Impulsu skaitīšana sākas ar nulli, kad lietojumprogramma tiek startēta, un turpinās, līdz lietotājs vai sistēma to iziet, atiestatot uz nulli ar pārplūdi aptuveni ik pēc 72 minūtēm. Funkcija clock() nemaina un nekontrolē šo skaitītāju; tas iegūst savu vērtību tikai tad, kad to sauc.



Lai izmērītu kopējo programmas izpildes laiku, mums tikai vienu reizi programmas beigās ir jāizsauc clock(). Lai izmērītu laiku, kas pagājis no viena programmas punkta uz otru, mums jāizsauc funkcija clock( ) un jāaprēķina divi iegūtie dati.

Aprēķins, lai noteiktu pagājušo atzīmes starp diviem zvaniem pulkstenis () funkcija tiek veikta, atņemot pirmā zvana rezultātu no otrā zvana rezultāta. Apskatīsim piemēru, lai noteiktu laiku, kas pagājis no viena programmas punkta līdz otram.

The pulkstenis () funkcija ir definēta “time.h” galvenes funkcijās. Lai to izmantotu, mums tas ir jāiekļauj mūsu “.c” vai “.h” koda failā, kā parādīts nākamajā attēlā.

#include

Kā pārvietot pagājušo pulksteni no viena programmas punkta uz citu, izmantojot funkciju Clock ()

Šajā piemērā mēs redzēsim, kā iegūt pagājušo ķeksīšu skaitu no viena programmas punkta uz citu. Šie divi punkti atbilst vienam no diviem izsaukumiem uz pulkstenis () funkcija, attiecīgi. Lai to saprastu, apskatīsim šādu kodu:





#include

#include



tukšs galvenais ( )



{

pulkstenis_t ticks_ini, tics_end;

dubultās ērces;

ticks_ini = pulkstenis ( ) ; // pasākuma sākums

printf ( 'atzīmes sākuma pasākums  %ld \n ' , ticks_ini ) ;

priekš ( starpt a = 0 ; a < = 456450 ; a++ ) ;



tics_end = pulkstenis ( ) ; // mērīt stop

ērces = tics_end - tics_ini;

printf ( 'atzīmes beigu mērs  %ld \n ' , tiks_beigas ) ;

printf ( 'atzīmes pagājušas starp pasākumu  %f \n ' ,  atzīmē ) ;

atgriezties ;

}



Pirmkārt, mēs izveidojam divus mainīgos, tics_ini un ērces_beigas , kurā mēs saglabājam clock() rezultātu tā divos izsaukumos. Mēs to aprēķinām, lai iegūtu pagājušo ērču skaitu un veselu skaitli ērces , kurā mēs glabājam kopējo pagājušo ērču gala rezultātu.

Pēc tam mēs saucam par pulkstenis () funkciju mūsu “galvenajā” un izgūt iepriekš definētos pulksteņa rādītājus mapē tics_ini mainīgais, kas pagājis kopš programmas sākuma līdz pirmajam šīs funkcijas izsaukumam. Lai parādītu šo vērtību, mēs izmantojam funkciju printf ().

Pēc šīs aizkaves, ko izveidojām ar priekš , mēs saucam par pulkstenis () funkciju otro reizi, lai iegūtu ērču skaitu līdz šim punktam. Mēs izvadām rezultātu uz ekrānu, izmantojot funkciju printf (). Pēc tam mēs iegūstam precīzu ērču skaitu, kas pagājis starp pirmo un otro zvanu pulkstenis () atņemot tics_ini no ērces_beigas un saglabājot rezultātu mainīgajā atzīmēs, ko mēs izvadām konsolei ar printf().

Tādā veidā mēs iegūstam atzīmes, kas kodā pagājušas no viena punkta uz otru.

Kā pārvērst iegūto ērču skaitu sekundēs, izmantojot funkciju Clock ()

Kad esam ieguvuši atzīmju skaitu, kas pagājis kopš programmas sākuma vai no viena punkta uz otru, mēs varam pārvērst šo ķeksīšos izteikto laiku sekundēs, dalot iepriekšējā piemēra rezultātu ar iepriekš noteiktu konstanti laikā.h CLOCKS _PER_ SEC, kā parādīts šajā fragmentā:

ērces = ( tics_end - ticks_ini ) / ( dubultā ) CLOCKS_PER_SEC;

printf ( 'atzīmes pagāja sekundēs starp mērījumiem  %f \n ' ,  atzīmē ) ;

Secinājums

Šajā Linux padoms rakstā mēs parādījām, kā to īstenot pulkstenis () funkcija, lai veiktu laika mērījumus sistēmas pulksteņa atzīmēs. Mēs arī paskaidrojām, kā jūs varat izmērīt visu vai daļu no šiem laikiem darbošajā lietojumprogrammā. Mēs parādījām, kā pārvērst rezultātus sekundēs. Mēs ceram, ka šis raksts jums bija noderīgs. Vairāk padomu par C valodu varat atrast mūsu rakstos, kurus varat atrast, izmantojot vietnes meklētājprogrammu.