Medir tiempo de ejecución en C++

Habitualmente una de las cosas que nos interesa medir cuando programamos código, es el tiempo de ejecución. Identificar las secciones de código que más impactan en el tiempo de ejecución total, nos permite optimizar el código y disminuir el tiempo de ejecución general de todo nuestro código.

chronometre

En C++ hay varias formas de hacerlo, pero dependiendo de cómo lo implementemos y qué cabeceras usemos, podemos encontrarnos que al compilar nuestro código en ciertos sistemas no nos funcione. El siguiente ejemplo muestra cómo medir tiempos en una sección de código utilizando cabeceras estándar de C++:

#include <iostream>
#include <ctime> 

unsigned t0, t1;

t0=clock()
// Code to execute
t1 = clock();

double time = (double(t1-t0)/CLOCKS_PER_SEC);
cout << "Execution Time: " << time << endl;

La función “clock” retorna el tiempo consumido por el programa medido en ticks,  que junto con la macro “CLOCKS_PER_SEC” nos permite traducir los ticks a segundos.

El código también se encuentra disponible en:

execution_time.cpp

10271 Visitas Totales 6 Visitas para Hoy

6 response on “Medir tiempo de ejecución en C++

    • Me alegro! Gracias por tu comentario.

      Aunque como ya habrás notado, no tengo publicidad como tal en la que se cobre por clicks o visualizaciones, pero gracias igualmente 😉

  1. Hola, he utilizado esta función sin embargo me arroja como resultado el tiempo pero de forma hexadecimal creo, sabes a que se pueda deber esto, es decir no me arroja por ejemplo 0.000001542 me arroja 0.e32 etc etc. Agradeceria si alguien me respondiera, gracias de antemano

    • Lo primero creo que te falta algún número entre el . y la e en 0.e32

      Por otro lado, ese formato es normal y se llama notación científica que se representa de la forma mantisa x base^exp. Si operas el número tendrás el número decimal que buscas.

      La razón de que esto sea así es por la “representabilidad” de valores demasiado grandes o demasiado pequeños que acomoda dichos valores para ser escritos de manera convencional, legible y precisa gracias a la notación científica.

      En el caso particular de la programación la base es siempre 10. Es decir, si tu número, el cual como te he dicho creo que le falta algún número, quedaría por ejemplo 1.36e^32 como 1,36 × 10^32 en base 10 y quitándole la base le tendrías que añadir 32 ceros a 1,36. Representación que ya se vuelve difícil de leer, complicada de escribir por su longitud y seguramente acabarías redondeando para evitarlo perdiendo precisión.

      Espero que la respuesta te haya servido y te ayude a entender los valores que estás obteniendo.

Deja un comentario