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
  • Escrito por Antonio José Checa Bustos el 29 de Octubre de 2018
  • 1 min de lectura | Programación
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.

Relacionado

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

Curso de introducción a C++

Curso de introducción a C++

curso

Con este curso aprenderás:

  • Qué es C++
  • Creación de ejecutables
  • Tipos básicos

Duración: 1 hora y 56 minutos

Por qué aprender C++

Por qué aprender C++

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