Python Timeit() com exemplos
O que รฉ a 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 Tรฉcnicos
- 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.
