Python Timeit() с примери

Какво е Python Timeit()?

Python timeit() е метод в Python библиотека за измерване на времето за изпълнение, необходимо на дадения кодов фрагмент. The Python библиотека изпълнява оператора на кода 1 милион пъти и осигурява минималното време, взето от дадения набор от кодови фрагменти. Python timeit() е полезен метод, който помага при проверка на ефективността на кода.

Синтаксис

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

параметри

  • stmt: Това ще вземе кода, за който искате да измерите времето за изпълнение. Стойността по подразбиране е “pass”.
  • структура: Това ще съдържа подробности за настройката, които трябва да бъдат изпълнени преди stmt. Стойността по подразбиране е „pass“.
  • таймер: Това ще има стойността на таймера, timeit() вече има зададена стойност по подразбиране и можем да я игнорираме.
  • брой: stmt ще се изпълни според номера, даден тук. Стойността по подразбиране е 1000000.

За да работим с timeit(), трябва да импортираме модула, както е показано по-долу:

import timeit

Първи пример

Ето прост пример за функция timeit().

Пример за код 1

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

Изход:

0.06127880399999999

Видяхме прост пример, който ни дава времето за изпълнение на изхода на простия кодов оператор = 10*5, а времето, необходимо за изпълнението му, е 0.06127880399999999.

Време Няколко реда в код на Python

Има два начина за изпълнение на множество редове код в timeit.timeit(): чрез разделяне на редовете с точка и запетая или затваряне на кода като низ с тройни кавички.

Ето примери, които показват работата му.

Пример 1: Използване на точка и запетая

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

Изход:

The time taken is  0.137031482

Пример 2: Използване на тройни кавички

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

Изход:

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

timeit – Методи

Ето 2 важни метода timeit

timeit.default_timer() : Това ще върне времето по подразбиране, когато се изпълни.

timeit.repeat(stmt, настройка, таймер, повторение, номер) : същото като timeit(), но с repeat timeit() се извиква броя пъти, когато е дадено повторение.

Примерна програма 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))

Изход:

0.46715912400000004

Пример 2

default_timer() Пример

# 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)

Изход:

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

Пример 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))

Изход:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() работи подобно на функцията timeit.timeit(), с единствената разлика, че приема аргумента за повторение и връща времето за изпълнение във формат на масив със стойности според номера на повторение.

Изпълнение на функцията за синхронизация timeit.timeit() в интерфейса на командния ред

Синтаксисът за изпълнение на вашата функция вътре в timeit() на командния ред е както следва:

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

Параметри на командния ред:

  • -n N: броя пъти, които искате кодът да се изпълни.
  • -r N: колко пъти искате функцията timeit() да се повтори
  • -s S: това ще има подробности за настройката, които ще бъдат изпълнени преди изпълнението на кода.
  • -t: за това можете да използвате time.time()
  • -c: за това можете да използвате time.clock()
  • -h: за помощ
  • кодова декларация: подробностите за кода.

Пример

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

Друг начин, по който можете да изпълните в командния ред, е както е показано по-долу:

Пример

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

Защо timeit() е най-добрият начин за измерване на времето за изпълнение на Python код?

Ето няколко причини, поради които смятаме, че timeit() е най-добрият начин за измерване на времето за изпълнение.

  • Той изпълнява оператора на кода 1 милион пъти, което е стойността по подразбиране, и от това ще ви върне минималното отнето време. Можете също да увеличите/намалите 1 милион, като зададете числото на аргумента във функцията time ().
  • Докато изпълнявате теста, събирането на боклук се деактивира всеки път от функцията time ().
  • timeit() вътрешно взема точното време според използваната от вас операционна система. Например, ще използва time.clock() за Windows операционна система и time.time() за Mac и Linux.

Oбобщение

Timeit() се използва за получаване на времето за изпълнение, необходимо за дадения малък код

Параметри, използвани с timeit()

  • stmt: Това ще вземе кода, който искате, за измерване на времето за изпълнение
  • настройка: Това ще съдържа подробности за настройката, които трябва да бъдат изпълнени преди stmt
  • таймер: Това ще има стойността на таймера, timeit() вече има зададена стойност по подразбиране и можем да я игнорираме.
  • номер: stmt ще се изпълни според номера, даден тук.