Funzione dell'orologio in lingua c

Funzione dell'orologio in lingua c

In questo Suggerimento Linux Articolo, ti mostreremo come usare il orologio() funzione, una delle risorse disponibili nel linguaggio C, per misurare i tempi di esecuzione di un particolare processo o thread.

Sebbene queste frazioni di tempo sembrino insignificanti, ci sono casi critici in cui la capacità di misurare e calcolare queste piccole frazioni di tempo sono fattori critici nell'accuratezza del sistema o del processo stesso. Daremo una descrizione teorica di come orologio() opere, spiega il suo funzionamento e le unità di misurazione che utilizza a questo scopo.

Quindi, usando esempi pratici che includono frammenti di codice e immagini, vedremo come è possibile implementare questa funzione in modo chiaro e dettagliato per misurare i tempi critici nei processi in tempo reale in diversi sistemi.

Clock () sintassi della funzione:

clock_t clock (void)

Clock () Descrizione della funzione in lingua C

La funzione clock () è vuota quando viene chiamata. Non contiene argomenti di input e restituisce il numero di tick dell'orologio in "clock_t" al momento della chiamata.

Il conteggio degli impulsi inizia a zero quando l'applicazione viene avviata e continua fino a quando l'utente o il sistema non lo esce, ripristinando a zero tramite overflow in circa ogni 72 minuti. La funzione clock () non modifica né ha il controllo su questo contatore; ottiene il suo valore solo quando viene chiamato.

Per misurare il tempo di esecuzione totale del programma, dobbiamo chiamare l'orologio () solo una volta alla fine del programma. Per misurare il tempo trascorso da un punto del programma all'altro, dobbiamo chiamare la funzione clock () e calcolare i due dati ottenuti.

Il calcolo per determinare le zecche trasformate tra due chiamate del orologio() La funzione viene eseguita sottraendo il risultato della prima chiamata dal risultato della seconda chiamata. Vediamo un esempio per determinare l'importo del tempo trascorso da un punto del programma a un altro.

IL orologio() La funzione è definita in “Time.H "funzioni di intestazione. Dobbiamo includerlo nel nostro ".C "o".File di codice h ", come mostrato nella seguente immagine, per usarlo.

#includere

Come ottenere le zecche di clock trascorse da un punto del programma a un altro con la funzione clock ()

In questo esempio, vedremo come ottenere il numero di zecche trascorse da un punto del programma a un altro. Questi due punti corrispondono a una delle due chiamate al orologio() funzione, rispettivamente. Per capirlo, vediamo il seguente codice:


#includere
#includere
void main ()

clock_t zecca_ini, zecche_end;
Doppio zecche;
zecca_ini = clock (); // Misura l'inizio
printf ("zecche iniziano misura %ld \ n", zecche_ini);
per (int a = 0; a<=456450; a++);
zecca_end = clock (); // Misura Stop
zecche = ticks_end - zecche_ini;
printf ("Misura di end zecche %ld \ n", zecche_end);
printf ("zecche trascorse tra la misura %f \ n", zecche);
ritorno;

Innanzitutto, creiamo le due variabili, zecche_ini E zecche, in cui memorizziamo il risultato dell'orologio () nelle sue due chiamate. Lo calcoliamo per ottenere il numero di zecche trascorse e l'intero zecche, in cui memorizziamo il risultato finale delle zecche totali trascorse.

Quindi, chiamiamo il orologio() funzione nel nostro "principale" e recuperare i tick di clock precedentemente definiti in zecche_ini variabile che è trascorso dall'inizio del programma fino alla prima chiamata a questa funzione. Usiamo la funzione printf () per visualizzare questo valore.

Dopo questo ritardo, con cui abbiamo creato per, Chiamiamo il orologio() Funzionare per la seconda volta per ottenere il numero di zecche fino a questo punto. Outputiamo il risultato sullo schermo con la funzione printf (). Ottiamo quindi il risultato del numero esatto di zecche trascorse tra la prima e la seconda chiamata a orologio() sottraendo zecche_ini da zecche e archiviando il risultato nelle zecche variabili, che emettiamo sulla console con printf ().

In questo modo, otteniamo le zecche che sono trascorse da un punto all'altro nel codice.

Come convertire il numero di zecche ottenute in secondi con la funzione clock ()

Una volta che abbiamo il numero di zecche trascorse da quando il programma è iniziato o da un punto all'altro, possiamo convertire questa volta espressa nelle zecche a pochi secondi dividendo il risultato dell'esempio precedente con la costante predefinita nel tempo.H Orologi _per_ sec, Come mostrato nel seguente frammento:

zecca = (zecca_end - zecche_ini)/(doppio) clocks_per_sec;
printf ("zecche trascorse in secondi tra la misura %f \ n", zecche);

Conclusione

In questo Suggerimento Linux Articolo, ti abbiamo mostrato come implementare il orologio() funzione per effettuare le misurazioni del tempo nelle zecche dell'orologio di sistema. Abbiamo anche spiegato come puoi misurare tutto o una parte di questi tempi all'interno dell'applicazione in esecuzione. Ti abbiamo mostrato come convertire i risultati in pochi secondi. Speriamo che tu abbia trovato questo articolo utile. Puoi trovare altri suggerimenti sulla lingua C nei nostri articoli che puoi trovare utilizzando il motore di ricerca del sito Web.