Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Matheus Weber

Cronometrando um While

Recommended Posts

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 */


Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.