BOMBOLOM.COM

(python) Determinar o tempo de execução de uma função

Este é um post de José Lopes.

Pode ser útil conhecer o tempo que uma determinada função demora a ser executada. As razões podem ser das mais variadas, como pretender optimizar uma função ou verificar qual das soluções para o mesmo problema é a mais rápida.

Este post fornece uma solução genérica para contabilizar o tempo de execução de uma função.

A solução seguinte é muito simples e pode ser utilizada com qualquer função.

(1)import time
(2)def timer (f, *args):
(3)  begin = time.time()
(4)  f(*args)
(5)  end = time.time()
(6)  total = end - begin
(7)  print total

Explicando o código:

(1) Importa o módulo de tempo.
(2) Declaração da função, com argumentos uma função f com qualquer número de argumentos (*args).
(3) e (5) Regista respectivamente o tempo antes e depois de executar a função f.
(4) Executa a função dada.
(6) Calcula o tempo de execução.
(7) Imprime para o ecrân o tempo de execução em segundos.

Segue-se o exemplo de como utilizar esta função, mais para realçar como declarar os argumentos da função f para quem não esteja familiarizado.
Se tivermos uma função de teste:

def test(x, y):
  value = x + y
  return value

Basta fazer:

timer(test, 4, 6)

Como podemos verificar temos de declarar na função time todos os argumentos da função test e assim temos uma solução verdadeiramente genérica.

10.09.2007 | Ler mais | Comentários | Tags

Voltar à Página principal | Made with PyBlosxom