Para medir tempo em programas

Why?

Bom, medir o tempo é sempre necessário ou útil. Recentemente, quando estava pensando em fazer algumas analises, me deparei com uma necessidade de medir o tempo de alguma parte do código de forma simples.

Tudo bem. Pensei em varias coisas. Analise de profile, alguns programas( gprof, valgrind, oprofile . . .) ai lembrei: Queria que fosse algo simples :p.

Apesar de ser simples, analise de profile se mostra um tiro de shotgun no pé. Por isso, resolvi usar uma função para medir tempo meio que homemade. Como era em c++, resolvi fazer um negocio bonito, ao estilo RAII. Por isso, aproveitando a criação de escopos e uso de destrutores e construtores, copiei-modifique uma classe na web, que infelizmente não lembro o autor. Na verdade, acho que não era uma classe, mas modifique pra ser. Sei lá, mas se o autor ver isso e notar semelhanças, desculpa :p.

Mas esta funcionando muito decente ate agora ^^.

Como usar ?

Para usar é fácil. Me aproveitei da idéia de escopo. Então, você cria um escopo com um objeto da classe MedeTempo no inicio do escopo. Quando esse escopo, sera imprimido o tempo gasto em segundos para executar aquele escopo.

Por exemplo:

#include "tempo.hpp"

int main( int argc , char* argv[] ){
	{ /* Crio um escopo aqui */
		MedeTempo tempoMain("Tempo de execução do main :");

		/* Um monte de código para ser medido aqui. . . */

	} /* Acabou o escopo aqui :(. Será mostrado o tempo de execução desse escopo aqui. */
}

 Isso deve dar uma idéia de como usar, mas qualquer coisa, pode falar comigo. Vou estar sempre por aqui, afinal o blog é meu, acho ;).

Baixando

Para baixar, é só clickar aqui. Isso é o código fonte, e deve acompanha o seu código e ser compilado com o seu código. Boa sorte e ate a próxima pessoal.

Advertisements

2 responses to “Para medir tempo em programas

  • Joseanderson

    Fala Baltazar … 1º. Gostaria de saber para onde foi minha resposta ao seu comentário … kkkk
    <br />Falando do &quot;medidor de tempo&quot; o que vc usa por baixo ??? &lt;time.h&gt;

  • psycho

    Sim, isso mesmo :p.
    <br />
    <br />Usei o &lt;ctime&gt; com o time_t mesmo. Veja l&aacute; o codigo fonte pow, n&atilde;o e nada complicado mesmo, voc&ecirc; entende facinho.
    <br />
    <br />Mas qualquer coisa que voc&ecirc; queira saber, to por aqui :D.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: