9 March, 2013 0 Comments AUTHOR: elemarjr CATEGORIES: Sem categoria Tags:

Determinando "tempo de execução" em C++

Tempo de leitura: Less than a minute

Olá. Tudo certo?!

Determinar tempo de execução, em qualquer linguagem de programação, é uma atividade importante.

Em C++, costumo confiar no sistema operacional para determinar tempo de execução. Recentemente, encontrei o seguinte template no MSDN que achei bastante interessante:

template <typename TFunction>
__int64 time_call(TFunction&& function)
{
	__int64 begin = GetTickCount();
	function();
	return GetTickCount() - begin;
}

Gostei bastante da ideia por isolar a complexidade dentro de uma única função.

Veja exemplo de aplicação:

int main()
{
int fibonacci40;
__int64 elapsed = time_call([&]()
{
fibonacci40 = fibonacci(40);
});

cout
<< "Fibonacci(30) = " << fibonacci40 << " computed in " << elapsed << " ms." << endl; return 0; } [/code] Entendido?!

0 Comments

  1. evangilo 4 years ago says:

    Parabéns pelo trabalho que você vem fazendo. Estou iniciando no mundo da programação agora, e os seus post ja me ajudaram bastante, aprendi coisas que nunca tinha ouvido falar. Vlw

    Reply
  2. Daniel Gadens 4 years ago says:

    Eu prefiro usar o QueryPerformanceCounter com QueryPerformanceFrequency, que é mais mais precisos que o GetTickCount() que tem uma precisão de 10 a 16 milliseconds. Ou seja se alguma operação demorar menos do que 10ms ele vai te mostrar zero o que é um problema em alguns casos.

    Reply