Crono en C++
system_clock representa el reloj de pared en tiempo real de todo el sistema. Se ve afectado por los ajustes de tiempo del sistema.
Steady_clock representa un reloj que aumenta monótonamente y que no se ve afectado por los cambios en la hora del sistema.
high_solution_clock es el reloj con el período de tic más corto disponible en el sistema.
Además
La biblioteca Chrono se utiliza para tratar la fecha y la hora. Esta biblioteca fue diseñada para abordar el hecho de que los temporizadores y relojes pueden ser diferentes en diferentes sistemas y así mejorar con el tiempo en términos de precisión. Lo único de crono es que proporciona una concepto de precisión neutral al separar la duración y el punto de tiempo (punto de tiempo) de relojes específicos. crono es el nombre de un encabezado y también de un subespacio de nombres: Todos los elementos en este encabezado (excepto las especializaciones common_type) no están definidos directamente bajo el espacio de nombres estándar (como la mayoría de las bibliotecas estándar) sino bajo el std::crono espacio de nombres . Los elementos de este encabezado tratan del tiempo. Esto se hace principalmente mediante tres conceptos:
Duración
Un objeto de duración expresa un lapso de tiempo mediante una cuenta como un minuto, dos horas o diez milisegundos. Por ejemplo, '42 segundos' podrían representarse mediante una duración que consta de 42 tics de una unidad de tiempo de 1 segundo.
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 ; }
Producción:
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.
Reloj
Un reloj consta de un punto de partida (o época) y una tasa de tictac. Por ejemplo, un reloj puede tener una época del 22 de febrero de 1996 y marcar cada segundo. C++ define tres tipos de reloj:
Punto de tiempo
Un objeto time_point expresa un punto en el tiempo relativo a la época de un reloj. Internamente, el objeto almacena un objeto de tipo duración y utiliza el tipo Reloj como referencia para su é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 ;; }
Producción:
f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s
Es importante tener en cuenta que la precisión y exactitud de los relojes y duraciones proporcionadas por
Crear cuestionario