#include <stdio.h>
#include <windows.h>
int main()
{
LARGE_INTEGER inicio, fim, freq;
// Inicia o temporizador
QueryPerformanceCounter( &inicio );
// O código...
int x;
for(x = 0; x <= 1000; x++)
printf("%d\n", x);
// Termina o temporizador
QueryPerformanceCounter( &fim );
// Calcula o tempo decorrido
float tempo_total = (float)( fim.QuadPart - inicio.QuadPart ) / freq.QuadPart;
printf( "%f\n", tempo_total );
return 0;
}
#include <iostream>
#include <sys/time.h> // for gettimeofday()
using namespace std;
int main()
{
timeval t1, t2;
double elapsedTime;
// start timer
gettimeofday(&t1, NULL);
// do something
...
// stop timer
gettimeofday(&t2, NULL);
// compute and print the elapsed time in millisec
elapsedTime = (t2.tv_sec - t1.tv_sec) * 1000.0; // sec to ms
elapsedTime += (t2.tv_usec - t1.tv_usec) / 1000.0; // us to ms
[COLOR=Red][B]-->[/B][/COLOR] elapsedTime = (t2.tv_usec - t1.tv_usec) / (1000*1000);
//isto supostamente se eu imprimir dava algo do genero? "0.001 Segundos"
cout << elapsedTime << " ms.\n";
return 0;
}
Com o time.h têm-se apenas precisão de 1 segundo que não serve para o que ele quer.
Para ser na ordem dos milisegundos têm que ser específico do SO, mas não sei como é em linux.
Não me lembrei do clock(), o time() é que têm um precisão de apenas um segundo.Segundo este site a biblioteca tem precisão até aos ticks do processador.