Crono in C++
system_clock rappresenta l'orologio da parete in tempo reale a livello di sistema. È influenzato dalle regolazioni dell'ora del sistema.
steady_clock rappresenta un orologio ad aumento monotono che non è influenzato dalle modifiche all'ora del sistema.
high_solving_clock è l'orologio con il periodo di tick più breve disponibile sul sistema.
Inoltre
La libreria Chrono viene utilizzata per gestire data e ora. Questa libreria è stata progettata per far fronte al fatto che timer e orologi potrebbero essere diversi su sistemi diversi e quindi per migliorare nel tempo in termini di precisione. La cosa unica del crono è che fornisce a concetto di precisione neutrale separando la durata e il punto temporale (timepoint) da orologi specifici. chrono è il nome di un'intestazione e anche di un sotto-spazio dei nomi: tutti gli elementi in questa intestazione (eccetto le specializzazioni common_type) non sono definiti direttamente sotto lo spazio dei nomi std (come la maggior parte della libreria standard) ma sotto il spazio dei nomi std::chrono . Gli elementi in questa intestazione riguardano il tempo. Ciò avviene principalmente attraverso tre concetti:
Durata
Un oggetto durata esprime un intervallo di tempo mediante un conteggio come un minuto, due ore o dieci millisecondi. Ad esempio, "42 secondi" potrebbe essere rappresentato da una durata composta da 42 tick di un'unità di tempo di 1 secondo.
CPP // C++ program to illustrate the utility // function duration::count #include #include int main () { using namespace std :: chrono ; // std::chrono::milliseconds is an // instantiation of std::chrono::duration:- 1 second milliseconds mil ( 1000 ); mil = mil * 60 ; std :: cout & lt ; & lt ; & quot ; duration ( in periods ) : & quot ;; std :: cout & lt ; & lt ; mil . count () & lt ; & lt ; & quot ; milliseconds . n & quot ;; std :: cout & lt ; & lt ; & quot ; duration ( in seconds ) : & quot ;; std :: cout & lt ; & lt ; ( mil . count () * milliseconds :: period :: num / milliseconds :: period :: den ); std :: cout & lt ; & lt ; & quot ; seconds . n & quot ;; return 0 ; }
Produzione:
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.
Orologio
Un orologio è costituito da un punto di partenza (o epoca) e da una frequenza di tick. Ad esempio, un orologio può avere l'epoca del 22 febbraio 1996 e ticchettare ogni secondo. C++ definisce tre tipi di orologio:
Punto temporale
Un oggetto time_point esprime un punto nel tempo relativo all'epoca di un orologio. Internamente l'oggetto memorizza un oggetto di tipo durata e utilizza il tipo Orologio come riferimento per la sua epoca.
CPP // C++ program to illustrate time point // and system clock functions #include #include #include // Function to calculate // Fibonacci series long fibonacci ( unsigned n ) { if ( n & lt ; 2 ) return n ; return fibonacci ( n -1 ) + fibonacci ( n -2 ); } int main () { // Using time point and system_clock std :: chrono :: time_point & lt ; std :: chrono :: system_clock & gt ; start end ; start = std :: chrono :: system_clock :: now (); std :: cout & lt ; & lt ; & quot ; f ( 42 ) = & quot ; & lt ; & lt ; fibonacci ( 42 ) & lt ; & lt ; 'n' ; end = std :: chrono :: system_clock :: now (); std :: chrono :: duration & lt ; double & gt ; elapsed_seconds = end - start ; std :: time_t end_time = std :: chrono :: system_clock :: to_time_t ( end ); std :: cout & lt ; & lt ; & quot ; finished computation at & quot ; & lt ; & lt ; std :: ctime ( & amp ; end_time ) & lt ; & lt ; & quot ; elapsed time : & quot ; & lt ; & lt ; elapsed_seconds . count () & lt ; & lt ; & quot ; s n & quot ;; }
Produzione:
f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s
È importante notare che la precisione e l'accuratezza degli orologi e delle durate fornite da
Crea quiz
Potrebbe Piacerti
Articoli Più
Categoria
Articoli Interessanti