TADS IFGoiano-Urutaí
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Últimos assuntos
» Principais IDEs para Java
Solução portável para medir tempo em C/C++ EmptyOntem à(s) 9:27 pm por juk

» LINKS PARA BAIXAR O OFFICE
Solução portável para medir tempo em C/C++ EmptyTer Abr 23, 2024 5:57 pm por juk

» Backup FULL FIREFOX
Solução portável para medir tempo em C/C++ EmptyDom Abr 07, 2024 3:16 pm por juk

» Backup FULL CHROME
Solução portável para medir tempo em C/C++ EmptyDom Abr 07, 2024 2:59 pm por juk

» Dowloand de Videos youtube Sem Permissão adminstrador
Solução portável para medir tempo em C/C++ EmptySeg Jan 02, 2023 2:13 pm por juk

» Cypecad 2019
Solução portável para medir tempo em C/C++ EmptySeg Jan 02, 2023 1:41 pm por juk

» Atualizando é instalando o IExplorer 11 no windows 7
Solução portável para medir tempo em C/C++ EmptyTer Ago 30, 2022 10:54 pm por juk

» COMO HABILITAR INTERNET EXPLORER NO WINDOWS 10
Solução portável para medir tempo em C/C++ EmptySex Abr 29, 2022 6:43 pm por juk

» Usando o Monitor de Recursos do sistema para identificar processos Associados.
Solução portável para medir tempo em C/C++ EmptyQua Abr 06, 2022 10:19 am por juk

Quem está conectado?
1 usuário online :: 0 registrados, 0 invisíveis e 1 visitante

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 192 em Ter Out 26, 2021 6:07 am

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

Ir para baixo

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

Mensagem  Diego Henrix 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

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos