Calcular tiempo de ejecucion

KaBeZiLLa

Hola. Tengo un programa hecho en C/C++ en el que necesito calcular el tiempo de distintas ejecuciones.

He conseguido mediante la libreria time.h calcular el tiempo de ejecucion en segundos, pero en algunas de las ejecuciones el tiempo es menor de 1 segundo por lo que me aparece tiempo de ejecucion = 0 segundos.

Lo que quisiera es contar el tiempo de ejecucion en milisegundos, pero con la librearia time.h no lo he conseguido.

¿Alguien sabe como hacerlo?

Muchas gracias

elkaoD

time() te da los ticks, busca más información.

gF

La funcion gettimeofday() te da precision de microsegundos. Tienes que importar <sys/time.h>. Yo la utilizo en algunos programas cuando quiero calcular el tiempo de ejecucion de alguna funcion.

aqui tienes como se usa:
http://rabbit.eng.miami.edu/info/functions/time.html#gtod

javithelong

Time te da, como dice kaod, tics de relog, si necesitas segundos lo puedes pasar a segundos, dividiendo por un define CLOCKS_PER_SEC o algo así (si necesitas milisegundos, igual, pero partido por mil)

Puedes usarlo como un cronómetro. Cuando quieras empezar a contar, haces time() y te guardas el valor devuelto, y cuando quieras parar, otra vez time() y restas el final menos el inicial, y si quieres, divides por macros para tener segundos o milisegundos o lo que quieras.

A mi me dió problemas con tiempos muy pequeños, pero para tiempos de milisegundos, creo que va bien.

Saludos

Usuarios habituales

  • javithelong
  • gF
  • elkaoD
  • KaBeZiLLa