Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Cómo usar la librería Chrono en C++

Antonio José Checa Bustos
Cómo usar la librería Chrono en C++
El reproductor de video será cargado en breves instantes.

Te contamos cómo funciona la librería Chrono de C++ con unos ejemplos y también sus principales usos.

¿Qué es la librería Chrono?

Chrono es una librería de cabecera de C++ con la que podemos trabajar con el tiempo. Podéis ver toda la información sobre ella en la página https://en.cppreference.com/w/cpp/chrono.

Vamos a ver un ejemplo de cómo utilizar esta cabecera Chrono.

#include <iostream>
#include <chrono>

int main()
{
    auto start = std::chrono::system_clock::now();
    auto end = std::chrono::system_clock::now();

    std::chrono::duration<float,std::milli> duration = end - start;

    std::cout << duration.count() << “s “ << std:endl;

    getchar();
    return = 0; 
}

Si compilamos y ejecutamos este código, nos devolverá el tiempo que ha tardado en ejecutarse el mismo.

¿Para qué sirve Chrono?

Para ver la utilidad real de esta librería de C++ vamos a ver otro ejemplo, en el que tenemos una función foo, que lo que hace es imprimir por pantalla el texto “Openwebinars”, queremos saber lo que tarda en ejecutarse la función e imprimirse ese texto en pantalla cien veces.

#include <iostream>
#include <chrono>

void foo ()
{
    for unsigned short i = 0; i < 100; ++i=;
        std::cout << “Openwebinars” << std::endl;
}

int main()
{
    auto start = std::chrono::system_clock::now();
    foo();
    auto end = std::chrono::system_clock::now();

    std::chrono::duration<float,std::milli> duration = end - start;

    std::cout << duration.count() << “s “ << std:endl;

    getchar();
    return = 0; 
}

Al ejecutarlo vemos que imprime cien veces el texto correspondiente, y lo hace en 252,75 milisegundos.

Vamos a ver el mismo ejemplo pero realizado de otra forma diferente:

#include <iostream>
#include <chrono>

struct Timer
{
    std::chrono::system_clock::time_point m_start;

    Timer()
    {
        mstart = std:chrono::system_clock::now();
}

~Timer()
{
    auto = end = std::chrono::system_clock::now();

    std::chrono::duration<float, std::milli> duration = end - m_start;

    std::cout << duration.cout() << std::endl;

}

}

void foo ()
{
    Timer t;
    for unsigned short i = 0; i < 100; ++i=;
        std::cout << “Openwebinars” << std::endl;
}

int main()
{
    foo();

    getchar();
    return = 0;
}

Al ejecutarlo vemos que realiza el mismo proceso pero en algo de menos tiempo, en este caso en 238.156 milisegundos.

El tiempo dependerá un poco del el sistema operativo en el que lo ejecutemos, si está ocupado o si el proceso en el que estamos ha ejecutado todos los ciclos de reloj que necesita. De hecho si lo ejecutamos más veces, vemos que el tiempo varía de una vez a otra.

También puede cambiar el tiempo que tarda en la ejecución si cambiamos algo en el código, y puede aumentar o disminuir.

Importancia de Chrono

Esta es la función básica de Chrono, y se puede utilizar en multitud de sitios, ya sea para eficiencia, para control de procesos, para control de hilos y cualquier cosa que podáis imaginar.

Por ejemplo, en videojuegos se puede utilizar para ver los gráficos o para saber cuánto tiempo ha pasado de un estado a otro, en este caso ejecutando una función que se irá actualizando para poder saber así el tiempo que ha pasado desde la última vez que se llamó a la misma.

Sigue aprendiendo a diseñar y asimilar patrones e interfaces para tus programas con este Curso de Patrones de diseño e interfaces en C++ 

curso-cpp-interfaces

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Qué es Scope en C++

Qué es Scope en C++

05 de Septiembre de 2018

Cuando estamos desarrollando código, es muy importante saber cual es el alcance donde una variable puede utilizarse para que nuestro código funcione correctamente, este artículo tratamos el área de...

Por qué aprender C++

Por qué aprender C++

Lenguajes de programación

06 de Septiembre de 2018

Si están pensando en aprender a programar en C++,  te contamos los motivos por los que aprender C++ como lenguaje de programación. En este artículo vemos las ventajas y desventajas de est...

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars