|
|
#1
|
|||
|
|||
|
Boas alguem me sabe dizer como se calcula o tempo de execução de um programa feito em C?
O que eu queria saber era mesmo o código para calcular isso! Obrigado. |
|
#2
|
|||
|
|||
|
Boas!
Uma forma: Código:
#include <time.h>
int main(){
time_t ini = time(0); // tempo de inicio
//teu metodo;
printf("duracao do metodo em s: %d",time(0)-ini);
return 0;
}
Fikem bem, [PT]Devilishly
__________________
JavaPT Team Leader |
|
#3
|
|||
|
|||
|
Isso é pra mostrar o tempo em segundos, e em milisegundos n sabes?
é que aqui o programa corre sempre abaixo de 1s. Mas obrigado na mesma! |
|
#4
|
|||
|
|||
|
Boas!
Tenta assim: Código:
void timeBetween(){
struct timeb ini, fim;
ftime(&ini);
// onde leva o teu metodo...
ftime(&fim);
printf("%f\n", ((double) fim.time + ((double) fim.millitm * 0.001)) -
((double) ini.time + ((double) ini.millitm * 0.001)));
}
Referencias: http://www.csee.usf.edu/~christen/tools/timeit.c http://www.phanderson.com/C/ftime.html <sys/timeb.h>
__________________
JavaPT Team Leader |
|
#5
|
|||
|
|||
|
Yeah! assim já dá, muito obrigado :wink:
|
|
#6
|
|||
|
|||
|
Também podes experimentar a função uclock().
Vê a referência aqui. O código ficaria algo como isto: Código:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i=0;
uclock_t inicio=0,fim=0;
inicio=uclock();
/*código a executar */
fim=uclock();
fprintf(stdout,"Tempo: %Ld",(fim-inicio)/(UCLOCKS_PER_SEC));
return 0;
}
|