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 ще се изпълни според номера, даден тук.