Python Timeit() com exemplos

O que é o Python Tempoit()?

Python timeit () é um método em Python biblioteca para medir o tempo de execução de um determinado trecho de código. O Python A biblioteca executa a instrução de código 1 milhão de vezes e fornece o tempo mínimo necessário para um determinado conjunto de trechos de código. Python timeit() é um método útil que ajuda a verificar o desempenho do código.

Sintaxe

timeit.timeit(stmt, setup,timer, number)

parâmetros

  • stmt: Isso levará o código cujo tempo de execução você deseja medir. O valor padrão é “aprovado”.
  • instalação: Isso terá detalhes de configuração que precisam ser executados antes do stmt. O valor padrão é “aprovado”.
  • cronômetro: Este terá o valor do timer, timeit() já tem um valor padrão definido e podemos ignorá-lo.
  • número: O stmt será executado de acordo com o número fornecido aqui. O valor padrão é 1000000.

Para trabalhar com timeit(), precisamos importar o módulo, conforme mostrado abaixo:

import timeit

Primeiro exemplo

Aqui está um exemplo simples da função timeit()

Exemplo de código 1

# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))

Saída:

0.06127880399999999

Vimos um exemplo simples que nos dá o tempo de execução da instrução de código simples saída = 10*5, e o tempo necessário para executá-la é 0.06127880399999999.

Cronometrando múltiplas linhas em código python

Há duas maneiras de executar várias linhas de código em timeit.timeit(): separando as linhas com ponto e vírgula ou colocando o código como uma string entre aspas triplas.

Aqui estão exemplos que mostram o funcionamento disso.

Exemplo 1: Usando ponto e vírgula

import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

Saída:

The time taken is  0.137031482

Exemplo 2: Usando aspas triplas

import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module))

Saída:

C:\pythontest>python testtimeit.py
The time taken is  0.182619178

timeit – Métodos

Aqui estão 2 métodos timeit importantes

timeit.default_timer() : Isso retornará o horário padrão quando executado.

timeit.repeat(stmt, configuração, temporizador, repetição, número) : o mesmo que timeit() , mas com repeat o timeit() é chamado o número de vezes que a repetição é dada.

Exemplo de programa 1

# testing timeit()
import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

Saída:

0.46715912400000004

Exemplo 2

default_timer() Exemplo

# testing timeit()
 
import timeit
import random
 
def test(): 
    return random.randint(10, 100)
 
starttime = timeit.default_timer()
print("The start time is :",starttime)
test()
print("The time difference is :", timeit.default_timer() - starttime)

Saída:

The start time is : 0.220261875
The time difference is : 0.0004737320000000045

Exemplo 3: timeit.repeat()

# testing timeit()
import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

Saída:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() funciona de forma semelhante à função timeit.timeit(), com a única diferença que recebe o argumento de repetição e retorna o tempo de execução em formato de array com valores de acordo com o número de repetição.

Executando a função de temporização timeit.timeit() dentro da interface de linha de comando

A sintaxe para executar sua função dentro de timeit() na linha de comando é a seguinte:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

Parâmetros da linha de comando:

  • -n N: o número de vezes que você deseja que o código seja executado.
  • -r N: o número de vezes que você deseja que a função timeit() se repita
  • -s S: terá detalhes de configuração que serão executados antes da execução do código.
  • -t: para isso, você pode usar time.time()
  • -c: para isso, você pode usar time.clock()
  • -h: para obter ajuda
  • instrução de código: os detalhes do código.

Exemplo

C:\pythontest>python -m timeit -s 'text="hello world"'
20000000 loops, best of 5: 13.1 nsec per loop

Outra maneira de executar dentro da linha de comando é mostrada abaixo:

Exemplo

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>

Por que timeit() é a melhor maneira de medir o tempo de execução de Python código?

Aqui estão alguns motivos pelos quais consideramos que timeit() é a melhor maneira de medir o tempo de execução.

  • Ele executa a instrução do código 1 milhão de vezes que é o valor padrão e, a partir disso, retornará o tempo mínimo necessário. Você também pode aumentar/diminuir 1 milhão definindo o número do argumento na função time ().
  • Durante a execução do teste, a coleta de lixo é sempre desabilitada pela função time().
  • timeit() internamente leva o tempo exato de acordo com o sistema operacional usado. Por exemplo, ele usará time.clock() para Windows sistema operacional e time.time() para Mac e Linux.

Resumo

Timeit() é usado para obter o tempo de execução do pequeno código fornecido

Parâmetros usados ​​com timeit()

  • stmt: Isso levará o código que você deseja medir o tempo de execução
  • setup: terá detalhes de configuração que precisam ser executados antes do stmt
  • timer: terá o valor do timer, timeit() já tem um valor padrão definido e podemos ignorá-lo.
  • número: O stmt será executado de acordo com o número fornecido aqui.