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



» Screenshot
Linux: Qemu no slack 10.2
Por gavet
» Login
Login:
Senha:
Linux login

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


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.