Olá, caro leitor! Seja muito bem-vindo a mais uma edição da "Dicas Pythonicas".
No pyPRO, queremos que você desenvolva programas mais eficientes e compreenda o desempenho dos seus códigos.
Hoje, vamos mostrar como calcular o tempo de execução de um trecho de código em Python. Medir o tempo que seu código leva para ser executado é essencial para otimização e diagnóstico de desempenho. Podemos fazer isso de forma simples usando a função time() do módulo time ou, para medições mais precisas, com o módulo timeit.
Veja como fazer isso com time():
from time import time
def fun():
for x in range(1000000):
pass # Retirando qualquer comando adicional para não afetar o tempo de execução
inicio = time()
fun()
fim = time()
print(f"Execução levou: {fim - inicio} segundos!")
Como Funciona?
- Importação da Função time(): time() retorna o número de segundos desde a "Época" (um ponto de referência fixo, geralmente 1 de janeiro de 1970). Podemos usá-la para registrar os instantes antes e depois da execução do código.
- Medindo o Tempo: Antes de executar a função fun(), capturamos o tempo inicial usando inicio = time(). Após a execução, capturamos o tempo final com fim = time(). A diferença entre fim e inicio fornece o tempo total de execução em segundos.
Agora, veja como fazer isso usando o módulo timeit:
import timeit
# Definindo a função a ser medida
def fun():
for x in range(1000000):
pass
# Medindo o tempo de execução com timeit
tempo = timeit.timeit("fun()", globals=globals(), number=10)
print(f"Tempo médio de execução: {tempo / 10} segundos por execução")
Como Funciona?
- Módulo timeit: O módulo timeit é projetado para medir o tempo de execução de pequenos trechos de código de forma mais precisa, executando o código várias vezes para obter uma média.
- timeit.timeit(): Executa o código fornecido (neste caso, fun()) um número especificado de vezes (number=10), e a média do tempo é calculada dividindo pelo número de execuções.
- globals=globals(): Isso permite que timeit acesse a função fun() definida no escopo global.
Para escolher utilizar timeit ou time(), siga o seguinte conselho:
- Quando usar timeit: timeit é mais preciso e recomendado para benchmarks, especialmente quando o código a ser medido tem tempos de execução muito curtos.
- Praticidade: Use time() para medições rápidas e timeit para análises detalhadas de desempenho.
Espero que esta dica te ajude a analisar e otimizar seus programas em Python de forma eficiente. Fique atento à próxima edição, onde exploraremos mais técnicas para ajudar no desenvolvimento de código de alta performance!
Um forte abraço,
Prof. Dr. Dilermando Piva Jr.
Idealizador do pyPRO
Visite: https://pypro.com.br para mais informações sobre Python, Ciência de Dados e Git/GitHub.