Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Relogio

Solução portável para medir tempo em C/C++

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Solução portável para medir tempo em C/C++

Mensagem  Diego Henrix em Sex Abr 11, 2014 9:00 am

Compartilho uma biblioteca que reúne varias funções diferentes, de sistemas diferentes, e tenta identificar a melhor opção disponível.

Para usar a biblioteca é preciso que o arquivo temporizador.h seja copiado para o diretório onde o seu programa será compilado e incluído com #include "temporizador.h".
São disponibilizadas duas funções de medição  obterTempoReal() e obterTempoCPU(), a primeira deve ser usada para se obter o tempo real e a segunda para tempo de processador usado.

link para download: https://drive.google.com/file/d/0B4m9FQ8snMU3djBtTmV4TGg5SlU/edit?usp=sharing

Exemplo de uso:
Código:

#include <stdio.h>
#include "temporizador.h"

int main(int argc, char **argv)
{
  int i;

  /* variáveis para armazenar o tempo inicial, final e total*/
  double tempo_inicial = 0.0, tempo_final = 0.0, tempo_total = 0.0;

  /* medindo o tempo real gasto (wall-clock) */
  tempo_inicial = obterTempoReal();
  for (i = 0; i < 1000000000; i++); /* trecho do programa a ser testado */
  tempo_final = obterTempoReal();

  /* Tempo gasto = tempo final - tempo inicial */
  tempo_total = tempo_final- tempo_inicial;
  
  printf("Tempo Real: %f\n\n", tempo_total);



  /* medindo o tempo de CPU gasto */
  tempo_inicial = obterTempoCPU();
  for (i = 0; i < 1000000000; i++); /* trecho do programa a ser testado */
  tempo_final = obterTempoCPU();

  /* Tempo gasto = tempo final - tempo inicial */
  tempo_total = tempo_final- tempo_inicial;
  
  printf("Tempo CPU: %f\n\n", tempo_total);

  getchar();
  getchar();

  return 0;
}

- Para compilar no Windows use o Dev-cpp ou outra IDE para compilar seu arquivo nome_do_seu_programa.c.

- Para compilar em sistemas unix like (como o GNU/Linux) é necessário linkar a biblioteca librt:
Código:

$ gcc -o nome_do_seu_programa nome_do_seu_programa.c -lrt

- Não se deve usar a opção '-lrt' no OSX.



A biblioteca deve funcionar a partir do windows xp, no OSX, e em sistemas unix like (GNU/Linux, BSD, Solaris).
Porém foi testada apenas no windows XP e 7, Debian 7 (testing), Ubuntu 12.10 e 13.04.

Essa solução tem propositos didáticos, seu desempenho profissional é questionável (necessita mais testes e aperfeiçoamento).

Por favor reportem bugs encontrados. Informem o desempenho nos sistemas não testados. Sugestões são bem-vindas.

Diego Henrix

Mensagens : 7
Data de inscrição : 04/04/2012

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum