Clock()-funktio C-kielellä

Clock Funktio C Kielella



Tässä Linux-vinkki artikkelissa näytämme sinulle, kuinka voit käyttää kello() funktio, yksi C-kielellä käytettävissä olevista resursseista, mittaamaan tietyn prosessin tai säikeen suoritusaikoja.

Vaikka nämä ajan murto-osat vaikuttavat merkityksettömiltä, ​​on kriittisiä tapauksia, joissa kyky mitata ja laskea nämä pienet ajan murto-osat ovat kriittisiä tekijöitä itse järjestelmän tai prosessin tarkkuudessa. Annamme teoreettisen kuvauksen siitä, miten kello() toimii, selittää sen toiminta ja mittayksiköt, joita se käyttää tähän tarkoitukseen.







Käytännön esimerkkien avulla, jotka sisältävät koodifragmentteja ja kuvia, näemme, kuinka voit toteuttaa tämän toiminnon selkeästi ja yksityiskohtaisesti mittaamaan kriittisiä aikoja reaaliaikaisissa prosesseissa eri järjestelmissä.



Kello()-funktion syntaksi:



clock_t kello ( mitätön )





Clock()-funktion kuvaus C-kielellä

clock()-funktio on tyhjä, kun sitä kutsutaan. Se ei sisällä syöttöargumentteja ja palauttaa kellon tikittyjen määrän muodossa 'clock_t' puhelun aikana.

Pulssilaskenta alkaa nollasta, kun sovellus käynnistetään, ja jatkuu, kunnes käyttäjä tai järjestelmä poistuu siitä. Pulssi laskee nollaan ylivuodolla noin 72 minuutin välein. clock()-funktio ei muokkaa tai hallitse tätä laskuria; se saa arvonsa vasta kun sitä kutsutaan.



Mittaaksemme ohjelman kokonaissuoritusajan, meidän on kutsuttava clock() vain kerran ohjelman lopussa. Mittaaksemme ohjelman yhdestä pisteestä toiseen kuluneen ajan, meidän on kutsuttava kello ( ) -funktio ja laskettava kaksi saatua dataa.

Laskelma, jolla määritetään kuluneet tikit kahden puhelun välillä kello() toiminto suoritetaan vähentämällä ensimmäisen kutsun tulos toisen kutsun tuloksesta. Katsotaanpa esimerkkiä ohjelman pisteestä toiseen kuluneen ajan määrittämiseksi.

The kello() toiminto määritellään 'time.h' otsikkofunktioissa. Meidän on sisällytettävä se '.c'- tai '.h'-kooditiedostoomme, kuten seuraavassa kuvassa näkyy, jotta sitä voidaan käyttää.

#include

Kuinka saada kuluneet kellon tikit ohjelman yhdestä pisteestä toiseen Clock()-toiminnolla

Tässä esimerkissä näemme, kuinka saadaan kuluneiden merkkien määrä ohjelman kohdasta toiseen. Nämä kaksi pistettä vastaavat yhtä kahdesta kutsusta kello() vastaavasti. Ymmärtääksesi tämän, katsotaan seuraava koodi:





#include

#include



tyhjä pää ( )



{

clock_t ticks_ini, ticks_end;

kaksoispukki;

ticks_ini = kello ( ) ; // mittaa aloitus

printf ( 'rastit aloitusmitta %ld \n ' , tiks_ini ) ;

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



ticks_end = kello ( ) ; // mittaa stop

ticks = ticks_end - ticks_ini;

printf ( 'rastit loppumitan  %ld \n ' ,  ticks_end ) ;

printf ( 'mitan välillä kului punkkeja  %f \n ' ,  rastit ) ;

palata ;

}



Ensin luomme kaksi muuttujaa, tiks_ini ja ticks_end , johon tallennamme clock():n tuloksen sen kahdessa kutsussa. Laskemme sen saadaksemme kuluneiden tikkujen määrän ja kokonaisluvun punkkeja , johon tallennamme kuluneiden punkkien lopputuloksen.

Sitten soitamme n kello() toiminto 'pää'-sivullamme ja noutaa aiemmin määritellyt kellon tikit tiks_ini muuttuja, joka on kulunut ohjelman alusta tämän funktion ensimmäiseen kutsuun. Käytämme printf()-funktiota tämän arvon näyttämiseen.

Tämän viiveen jälkeen, jonka loimme varten , kutsumme kello() toimintoa toisen kerran saadaksesi punkkien määrän tähän pisteeseen asti. Tulostamme tuloksen näytölle printf()-funktiolla. Sitten saamme tuloksen ensimmäisen ja toisen kutsun välillä kuluneiden merkkien tarkasta määrästä kello() vähentämällä tiks_ini alkaen ticks_end ja tallennetaan tulos muuttujan tikkeihin, jotka tulostetaan konsoliin printf(:llä).

Tällä tavalla saamme koodin pisteestä toiseen kuluneet rastit.

Kuinka muuntaa saatujen tikkujen lukumäärä sekunteiksi Clock()-toiminnolla

Kun meillä on ohjelman käynnistymisestä tai pisteestä toiseen kulunut merkkien määrä, voimme muuntaa tämän tikkeinä ilmaistun ajan sekunteiksi jakamalla edellisen esimerkin tuloksen ennalta määritetyllä vakiolla time.h CLOCKS _PER_ SEC, kuten seuraavassa katkelmassa näkyy:

tikkejä = ( ticks_end - ticks_ini ) / ( kaksinkertainen ) CLOCKS_PER_SEC;

printf ( 'Tikit kuluivat sekunneissa mittausten välillä  %f \n ' ,  rastit ) ;

Johtopäätös

Tässä Linux-vinkki artikkelissa näytimme sinulle, kuinka se toteutetaan kello() toiminto suorittaa aikamittaukset järjestelmän kellon tikkuilla. Selitimme myös, kuinka voit mitata kaikki nämä ajat tai osan niistä käynnissä olevassa sovelluksessa. Näimme sinulle, kuinka tulokset muunnetaan sekunneiksi. Toivomme, että tämä artikkeli oli sinulle hyödyllinen. Lisää vinkkejä C-kielestä löydät artikkeleistamme, jotka löydät verkkosivuston hakukoneen avulla.