Monitorando tempo de execução de uma função
Escrito por meleu em 28 Mar 2008Vamos direto à prática, para detalhes é necessário consultar o livro e/ou as man pages.
Primeiro temos que criar a seguinte função para imprimir o tempo:
#include <unistd.h>
static void imprimetempo(clock_t tempo) {
static long clktck = 0;
if(clktck == 0)
if((clktck = sysconf(_SC_CLK_TCK)) < 0)
perror("sysconf");
printf("%7.2f s", tempo / (double) clktck);
}
E para que esta função seja útil temos que chamá-la de maneira análoga ao exemplo abaixo:
#include <sys/times.h>
int main() {
clock_t ini, fim;
.
.
.
ini = times(NULL);
funcao_que_quero_ver_quanto_tempo_leva(argumentos);
fim = times(NULL);
printf("Tempo que levou: ");
imprimetempo(fim - ini);
.
.
.
return 0;
}