Voltar   Descobre > Informática > Programação
Procurar Novas Mensagens Marcar Fóruns como Lidos

 
 
Opções Procurar Display
  #1  
Antigo 03-2005, 00:34
bann bann está offline
Membro
 
Registo: Jan 2005
Mensagens: 5
Default Tempo de execução de um programa

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.
Responder com Quote
Publicidade
publicidade
  #2  
Antigo 03-2005, 14:28
[PT]Devilishly [PT]Devilishly está offline
Membro
 
Registo: Feb 2005
Local: porto.pt
Mensagens: 18
Default

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;
}
Dá uma olha no metodo time(time_t *t);

Fikem bem,
[PT]Devilishly
__________________
JavaPT Team Leader
Responder com Quote
  #3  
Antigo 03-2005, 15:13
bann bann está offline
Membro
 
Registo: Jan 2005
Mensagens: 5
Default

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!
Responder com Quote
  #4  
Antigo 03-2005, 16:00
[PT]Devilishly [PT]Devilishly está offline
Membro
 
Registo: Feb 2005
Local: porto.pt
Mensagens: 18
Default

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
Responder com Quote
  #5  
Antigo 03-2005, 16:06
bann bann está offline
Membro
 
Registo: Jan 2005
Mensagens: 5
Default

Yeah! assim já dá, muito obrigado :wink:
Responder com Quote
  #6  
Antigo 03-2005, 16:54
LiG LiG está offline
Super Moderador
 
Registo: Jan 2004
Mensagens: 335
Default hmm..

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;
}
Não consegui testar isto porque o meu compilador não reconhecia a rotina uclock(), isto acontece porque ela não faz parte do padrão ANSI C. O mesmo acontece com o ftime e a estrutura timeb.
Responder com Quote
Responder

« Anterior | Seguinte »

Opções Procurar
Procurar:

Pesquisa Avançada
Display

Regras
Você não pode criar novos tópicos
Você não pode responder a msgs
Você não pode colocar anexos
Você não pode editar as suas msgs

Código vB está On
Smilies estão On
Código HTML está Off
Escolher Fórum


São agora 00:30.


Descobre.com - A Comunidade em Português
Powered by vBulletin, Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Portateis .com : computadores portáteis - Logos, games and ringtones - Publicidade
Parte integrante do Portal Descobre.com - Online desde 2000