Aprenda A Medir O Tempo De Execução De Código Python Com O Timeit
Aprenda a medir o tempo de execução de código Python com o timeit.
Glossário
Aprenda a medir o tempo de execução de código Python com o timeit
O que é o timeit
Medir o tempo de execução de código é uma tarefa importante para entender o desempenho e a eficiência de um programa. No Python, uma das ferramentas mais úteis para realizar essa medição é o módulo timeit. Com o timeit, é possível medir o tempo de execução de um trecho de código de maneira precisa e confiável.
Como funciona o timeit
O módulo timeit do Python funciona medindo o tempo de execução de um bloco de código específico, repetindo-o várias vezes e calculando a média dos tempos obtidos. Isso ajuda a evitar flutuações e resultados inconsistentes causados por fatores externos, como a carga do sistema operacional.
Utilizando o timeit
Para utilizar o timeit, é necessário importar o módulo e criar um objeto Timer, passando como parâmetro o código que deseja medir. Em seguida, é possível chamar o método timeit desse objeto, informando a quantidade de vezes que o código deve ser executado e retornando o tempo médio de execução.
É importante ressaltar que o tempo de execução retornado pelo timeit é dado em segundos. No entanto, caso o código tenha uma execução muito rápida, é possível obter resultados na ordem de microssegundos. Portanto, é necessário levar em consideração a escala de tempo adequada para cada caso.
Exemplos de uso do timeit
Existem várias maneiras de utilizar o timeit em diferentes partes do seu código Python. Uma delas é medir o tempo de execução de uma única linha de código. Por exemplo, suponha que você queira medir o tempo de execução da função math.sqrt()
para calcular a raiz quadrada de um número. Você pode fazer isso da seguinte forma:



import timeit
import math
tempo = timeit.timeit('math.sqrt(25)', setup='import math', number=1000000)
print(tempo)
Nesse exemplo, estamos medindo o tempo de execução da função math.sqrt(25)
executada 1 milhão de vezes. O resultado será o tempo médio em segundos.
Outra forma de utilizar o timeit é medir o tempo de execução de um trecho de código mais complexo. Por exemplo, suponha que você queira medir o tempo de execução de um loop que calcula a soma de todos os números de 1 a 100. Você pode fazer isso da seguinte forma:
import timeit
def calcular_soma():
soma = 0
for i in range(1, 101):
soma += i
return soma
tempo = timeit.timeit(calcular_soma, number=100000)
print(tempo)
Nesse exemplo, estamos medindo o tempo de execução da função calcular_soma()
executada 100.000 vezes. O resultado será o tempo médio em segundos.
Dicas para otimizar a medição de tempo com o timeit em Python
- Evite realizar operações desnecessárias durante a medição de tempo, pois elas podem comprometer a precisão dos resultados. Foque apenas no trecho de código que você deseja medir.
- Utilize a opção
setup
do método timeit para importar os módulos necessários ou definir variáveis globais que serão utilizadas no trecho de código. Isso evita repetições desnecessárias e melhora a eficiência da medição. - Considere utilizar a função
timeit.repeat()
em vez detimeit.timeit()
quando precisar realizar várias medições consecutivas. Essa função retorna uma lista com os tempos de execução de cada iteração, permitindo uma análise mais detalhada.
Aprender a medir o tempo de execução de código Python com o timeit é essencial para otimizar o desempenho do seu programa. Com essa ferramenta, você pode identificar quais partes do código estão consumindo mais tempo de processamento e, assim, buscar alternativas para melhorar a eficiência.
Utilizando o timeit em diferentes partes do seu código
O módulo timeit do Python pode ser utilizado em diferentes partes do seu código para medir o tempo de execução e identificar possíveis gargalos de desempenho. Vejamos algumas formas de aplicar o timeit em diferentes situações:
-
Medindo o tempo de execução de uma função
Você pode utilizar o timeit para medir o tempo de execução de uma função específica. Basta encapsular a chamada da função dentro de uma função lambda e passá-la como parâmetro para o método timeit. Por exemplo:
import timeit def funcao_exemplo(): # Código que deseja medir o tempo de execução tempo = timeit.timeit(lambda: funcao_exemplo(), number=100) print(tempo)
Nesse exemplo, o timeit irá medir o tempo de execução da função
funcao_exemplo()
executada 100 vezes e retornar o tempo médio em segundos. -
Medindo o tempo de execução de um trecho de código específico
Se você possui um trecho de código específico que deseja medir o tempo de execução, pode utilizar o timeit de forma similar à medição de uma função. Basta encapsular o trecho de código dentro de uma função lambda e passá-la como parâmetro para o método timeit. Por exemplo:
import timeit tempo = timeit.timeit(lambda: [código que deseja medir], number=100) print(tempo)
Nesse exemplo, o timeit irá medir o tempo de execução do trecho de código executado 100 vezes e retornar o tempo médio em segundos.
-
Medindo o tempo de execução de diferentes partes do seu código
O timeit também pode ser utilizado para medir o tempo de execução de diferentes partes do seu código. Você pode encapsular cada trecho de código que deseja medir em funções separadas e utilizar o timeit para medir o tempo de execução de cada uma delas. Por exemplo:
import timeit def trecho_1(): # Trecho de código que deseja medir o tempo de execução def trecho_2(): # Trecho de código que deseja medir o tempo de execução tempo_1 = timeit.timeit(trecho_1, number=100) tempo_2 = timeit.timeit(trecho_2, number=100) print(tempo_1, tempo_2)
Nesse exemplo, o timeit irá medir o tempo de execução de cada trecho de código executado 100 vezes e retornar os tempos médios em segundos.
Dicas para otimizar a medição de tempo com o timeit em Python
- Utilize o método
repeat()
em vez detimeit()
quando precisar realizar medições consecutivas. Orepeat()
permite que você especifique o número de repetições desejadas e retorna uma lista com os tempos de execução de cada iteração. Isso pode ser útil para análises mais detalhadas e identificação de variações no tempo de execução. - Considere utilizar o argumento
setup
para importar módulos ou definir variáveis globais que serão utilizadas no trecho de código que você deseja medir. Essa abordagem evita a repetição de código desnecessária a cada iteração e melhora a eficiência da medição. - Ao medir o tempo de execução de um trecho de código, certifique-se de que apenas o trecho em questão está sendo medido. Evite incluir operações desnecessárias ou cálculos que não fazem parte do código que deseja analisar, pois isso pode afetar a precisão dos resultados.
- Para obter resultados mais precisos, é recomendável executar o timeit em um ambiente controlado, minimizando a interferência de outros processos em seu sistema operacional. Isso pode ser alcançado fechando outros aplicativos ou executando a medição em um ambiente virtual isolado.
Aprender a utilizar o timeit em diferentes partes do seu código Python e seguir essas dicas de otimização pode ajudar a identificar áreas que podem ser aprimoradas em termos de desempenho. Ao dominar a medição de tempo de execução, você estará mais preparado para criar programas mais eficientes e otimizados.
A Awari é a melhor plataforma para aprender sobre ciência de dados no Brasil
Aqui você encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu próximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.
Já pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? Clique aqui para se inscrever na Awari e começar a construir agora mesmo o próximo capítulo da sua carreira em dados.


