2012-06-18 12 views
10

He buscado pero no puedo encontrar un equivalente a la función matlab tic/toc para simplemente mostrar en la consola cuánto tiempo le tomó al programa hacer su procesamiento. (A ser posible me gustaría poner el tic (inicio del temporizador) y TOC (temporizador de fin) en cualquier parte del programa.matlab tic toc equivalente en C++

¿Alguna sugerencia?

+1

Esto no tiene nada que ver con la compilación. – Dennis

Respuesta

17

Encontré lo que estaba buscando. incluyen:

#include <ctime> 

Entonces al principio:

time_t tstart, tend; 
tstart = time(0); 

Y, por último antes del final:

tend = time(0); 
cout << "It took "<< difftime(tend, tstart) <<" second(s)."<< endl; 
+0

La precisión del tiempo() es de segundos, mientras que el tic y el toc de MATLAB ofrecen milisegundos o más. – NoahR

+1

@NoahR 'difftime()' devuelve un 'doble', rindiendo una precisión mejor que 1 s también. La precisión real depende del sistema, ya que probablemente también lo esté en MATLAB. – glglgl

+0

En C use '#include '. Pero tenga en cuenta que, al menos en Windows, para mí todavía devuelve segundos completos, aunque el tipo de devolución es doble. La parte de milisegundos es ceros. –

3

Si está en Linux Puede utilizar la función

clock_gettime(); 

si en las ventanas tratan

QueryPerformanceCounter() 

puede google estos detalles específicos de implementación. otros sistemas operativos no sé acerca. Sin duda hay muchas otras maneras de lograr la Lo mismo, pero si no obtiene otras respuestas, estos son un lugar razonable para comenzar.