Crono en C++
system_clock representa el rellotge de paret en temps real de tot el sistema. Es veu afectat pels ajustos de temps del sistema.
steady_clock representa un rellotge que augmenta monòtonament que no es veu afectat pels canvis en l'hora del sistema.
high_resolution_clock és el rellotge amb el període de tick més curt disponible al sistema.
A més
La biblioteca Chrono s'utilitza per tractar la data i l'hora. Aquesta biblioteca va ser dissenyada per tractar el fet que els temporitzadors i els rellotges poden ser diferents en diferents sistemes i així millorar amb el temps en termes de precisió. L'única cosa del crono és que proporciona a concepte de precisió neutre separant la durada i el punt de temps (punt de temps) dels rellotges específics. chrono és el nom d'una capçalera i també d'un subespai de noms: tots els elements d'aquesta capçalera (excepte les especialitzacions common_type) no es defineixen directament sota l'espai de noms std (com la majoria de la biblioteca estàndard), sinó sota el espai de noms std::chrono . Els elements d'aquesta capçalera tracten el temps. Això es fa principalment mitjançant tres conceptes:
Durada
Un objecte de durada expressa un interval de temps mitjançant un recompte com un minut dues hores o deu mil·lisegons. Per exemple, "42 segons" es podria representar per una durada que consta de 42 ticks d'una unitat de temps d'1 segon.
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 ; }
Sortida:
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.
Rellotge
Un rellotge consta d'un punt de partida (o època) i una taxa de tictac. Per exemple, un rellotge pot tenir una època del 22 de febrer de 1996 i marcar cada segon. C++ defineix tres tipus de rellotge:
Punt de temps
Un objecte time_point expressa un punt en el temps relatiu a l'època d'un rellotge. Internament, l'objecte emmagatzema un objecte d'un tipus de durada i utilitza el tipus Clock com a referència per a la seva època.
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 ;; }
Sortida:
f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s
És important tenir en compte que la precisió i exactitud dels rellotges i les durades proporcionades per
Crea un qüestionari