Facebook pixel
>Blog>Ciência de Dados
Ciência de Dados

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.

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:

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada
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 de timeit.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:

  1. 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.

  2. 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:

    Nossa metodologia de ensino tem eficiência comprovada
    Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
    Nossa metodologia de ensino tem eficiência comprovada
    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.

  3. 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 de timeit() quando precisar realizar medições consecutivas. O repeat() 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.

Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada Aprenda uma nova língua na maior escola de idiomas do mundo! Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa. Quero estudar na Fluency
Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada
Nossa metodologia de ensino tem eficiência comprovada

Aprenda uma nova língua na maior escola de idioma do mundo!

Conquiste a fluência no idioma que sempre sonhou com uma solução de ensino completa.

+ 400 mil alunos

Método validado

Aulas

Ao vivo e gravadas

+ 1000 horas

Duração dos cursos

Certificados

Reconhecido pelo mercado

Quero estudar na Fluency

Sobre o autor

A melhor plataforma para aprender tecnologia no Brasil

A Awari é a melhor maneira de aprender tecnologia no Brasil.
Faça parte e tenha acesso a cursos com aulas ao vivo e mentorias individuais com os melhores profissionais do mercado.