Cronometrando um While
Boa noite galera, eu finalmente conseguir terminar minha tabela hash, porém agora estou na segunda parte do trabalho que é monitorar o tempo que demora para cada intervalo de inserções.
Eu consegui fazer perfeitamente o cronometro, porém ele só mostra 2 casas depois da virgula, precisava que ele mostrasse umas 8~10 casas, porque só com duas casas não dar pra ver a flutuação do tempo para montar um gráfico.
Segue o codigo:
inicia_cronometro();
while(!feof(fp) && i<1999999){
Chave novo;
fgets(aux,150, fp);
aux1 = strtok(aux, " ");
aux2 = atoi(strtok(NULL, " "));
novo.numero = aux2;
novo.string = (char*) malloc (150*sizeof(char));
novo.prox = NULL;
strcpy(novo.string,aux1);
if(i%200==0){
para_cronometro("Tempo: ", i);
}
float fatorCarga = (float) numeroElementos/posicoes;
insere(novo, vet1);
if(fatorCarga>CARGAMAXIMA){
numeroElementos = 0;
vet1 = rehash(vet1);
}
i++;
}
Esse é o while normal, não tem nada demais nele, é só para exemplificar como funciona, a cada 200 ele pausa o cronometro e imprime o tempo, meu objetivo depois é criar uma saída de dados num arquivo listando todos eles, para passar pro excel e criar o gráfico, mas continuando:
cronometro.c:
#include "cronometro.h"
#include <time.h>
clock_t _tempo;
void inicia_cronometro() {
_tempo = clock();
}
void para_cronometro(char *texto, int i) {
printf("%d - %s %.10f s\n", i, texto, (float) (clock() - _tempo) / ((float) CLOCKS_PER_SEC));
}
Esse é o arquivo do cronometro.
#ifndef CRONOMETRO_H
#define CRONOMETRO_H
#ifdef __cplusplus
extern "C" {
#endif
void inicia_cronometro();
void para_cronometro(char *, int i);
#ifdef __cplusplus
}
#endif
#endif / CRONOMETRO_H /
Discussão (1)
Carregando comentários...