Linux slogan
Visite também: BR-Linux.org · Dicas-L · SoftwareLivre.org · UnderLinux

Linux banner
Linux banner
Linux banner
Linux banner


» Screenshot
Linux: WindowMaker
Por Caesar

Comunidades

Comunidade Linux Home Participar da comunidade Linux Participar Fórum Linux Fórum Membros LinuxMembros RSS do fórum

<< Primeira | Anterior Próxima | Última >>

Medir Tempo de Execução [RESOLVIDO]

[1] Enviado em 06/03/2007 - 11:12h Medir Tempo de Execução [RESOLVIDO]
Linux user: Wander Daniel Domingues
wddlinux

(usa Debian)


Olá Pessoal,

Gostaria de saber se alguem tem "em mãos" alguma função em C que possa medir o tempo em que um programa gastou para ser executado.....
Valew.......Abraços

 

  


[2] Enviado em 06/03/2007 - 20:20h Re: Medir Tempo de Execução [RESOLVIDO]
Linux user: Gabriel Assis Bezerra
gabriel.bezerra

(usa Gentoo)


procura pelo codigo fonte do comando time do linux, ele serve justamente para isso.

 

[3] Enviado em 06/03/2007 - 20:58h time.h
Linux user: Diego da Silva de Medeiros
diegotosco

(usa Slackware)


Você pode usar as funções da lib time.h para calcular quanto tempo demorou para a execução do seu programa, pegando o horário que iniciou a execução do seu programa e o horário final. Subtraindo os dois, tem-se a duração.

Não sei se é bem isso que tu quer,
Falô

 

[4] Enviado em 08/03/2007 - 09:39h Re: Medir Tempo de Execução [RESOLVIDO]
Linux user: Filipe Niero Felisbino
filipe

(usa Suse)


Eu uso a seguinte classe:

class MedeTempo {
private:
string funcao;
clock_t inicio;
public:
MedeTempo(const string &f) {
inicio = clock();
funcao = f;
}
~MedeTempo() {
clock_t total = clock() - inicio;
cout << "Tempo para a funcao " << funcao << ": (segundos) "<< double(total)/CLOCKS_PER_SEC<<endl;
}
};

É bem simples e útil... basta instanciar esta classe e ela vai imprimir o tempo na stdout automaticamente.

ou seja...

int main(int argc, char* argv[]) {
MedeTempo mt("main");
for (int i=0; i<10; i++) {
sleep(1);
}
}

Vai imprimir automaticamente quando mt sair do escopo ;)

Espero ter ajudado..

Filipe N. Felisbino
www.cppbrasil.com

 

[5] Enviado em 14/02/2009 - 10:37h Re: Medir Tempo de Execução [RESOLVIDO]
Linux user: Ugo raga
ugoraga

(usa Outra)


cara achei
http://www.dca.fee.unicamp.br/~lotufo/cursos/EA877/sistemas-operacionais/exemplos/tempo.c
/*

Programa tempo.c - exemplo de utilização da chamada fork(); é uma versão
modificada do exemplo da seção 1.5.2 (pags. 9-10) da apostila de
sistemas operacionais (Magalhães, Cardozo, Faina).

Historico: criado por Magalhaes, Cardozo
Modificado: Mauro Aurelio
Roberto Lotufo 6nov96

Compilacao: gcc tempo.c -o tempo

Execucao: tempo <comando>
onde <comando> pode ser ls por exemplo

Sugestao de Modificacoes:
1. Retire a chamada wait(NULL) e observe o comportamento
2. Faca com que cada processo imprima o seu pid
o pid 'e obtido chamando-se getpid()
*/

#include <stdio.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <sys/types.h>

main(int argc, char *argv[])
{
int pid;
struct timeval tv1, tv2;
double t1, t2;

if(argc != 2)
{
printf("Uso: tempo algum_comando\n");

}

pid = fork(); /* fork */
if(pid == 0) {
printf("\nProcesso filho vai executar %s agora.\n",argv[1]);
gettimeofday(&tv1, NULL); /* processo pai continua ... */
t1 = (double)(tv1.tv_sec) + (double)(tv1.tv_usec)/ 1000000.00;
system(argv[1]); /* processo filho executa comando */
gettimeofday(&tv2, NULL);
t2 = (double)(tv2.tv_sec) + (double)(tv2.tv_usec)/ 1000000.00;
printf("\nExecucao de %s terminou agora.\n",argv[1]);
printf("\nO tempo de execucao de %s por filho foi: %lf\n",
argv[1], (t2 - t1));
}
else{
gettimeofday(&tv1, NULL); /* processo pai continua ... */
t1 = (double)(tv1.tv_sec) + (double)(tv1.tv_usec)/ 1000000.00;
/* wait(NULL); */ /* sincroniza com o termino do filho */
gettimeofday(&tv2, NULL);
t2 = (double)(tv2.tv_sec) + (double)(tv2.tv_usec)/ 1000000.00;
printf("\nO tempo de execucao de processo pai foi: %lf\n",(t2 - t1));
}
}



 

[6] Enviado em 14/02/2009 - 10:47h Re: Medir Tempo de Execução [RESOLVIDO]
Linux user: Thiago Salgado Monteiro
scrim

(usa Debian)


Cara... o pessoal ai escreveu tanta coisa que eu fiquei bolado, enfim... pra você medir o tempo de execução de uma maneira simples sem tantas classes e tudo mais. colcoa a biblioteca #include time.h

inicio = clock();
no fim da aplicação vc coloca fim = clock();
depois resultado = fim - inicio
simples cara... o que você vai ter que mexer é em relação a saida o formato da hora.... apenas..

 

[7] Enviado em 10/04/2009 - 23:54h Uma auternativa
Linux user: maxsbory
maxsbory

(usa Slackware)


Boa voce pode tentar tambem isto:

#include<time.h>
#include<stdout.h>

int main(){

time_t inicio, fim;
int t;
inicio = time(NULL);

printf("ALguma coisa.!\n");
for(t = 0; t < 40000; t++);
/* Em fim. tudo o programa deve esta apartir da chamada:
incio = time(NULL) */

fim = time(NULL); //Isto deve ficar no final
fprintf(stdout, "O tempo de execucao em segundos é %f\n", difftime(fim, inicio);
return;
}
pronto.

 

  
<< Primeira | Anterior Próxima | Última >>
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.