Какво е Python Timeit ()?
Python timeit () е метод в библиотеката на Python за измерване на времето за изпълнение, взето от дадения кодов фрагмент. Библиотеката на Python изпълнява кодовия оператор 1 милион пъти и осигурява минималното време, взето от дадения набор от кодови фрагменти. Python timeit () е полезен метод, който помага при проверка на производителността на кода.
Синтаксис:
timeit.timeit(stmt, setup,timer, number)
Параметри
- stmt : Това ще отнеме кода, за който искате да измерите времето за изпълнение. Стойността по подразбиране е "pass".
- настройка : Това ще съдържа подробности за настройка, които трябва да бъдат изпълнени преди stmt. Стойността по подразбиране е "pass".
- timer : Това ще има стойността на таймера, timeit () вече има зададена стойност по подразбиране и ние можем да я игнорираме.
- номер : stmt ще се изпълни според номера, даден тук. Стойността по подразбиране е 1000000.
За да работим с timeit (), трябва да импортираме модула, както е показано по-долу:
import timeit
Първи пример
Ето един прост пример за функцията timeit ()
Пример за код 1:
# testing timeit()import timeitprint(timeit.timeit('output = 10*5'))
Изход:
0.06127880399999999
Виждали сме прост пример, който ни дава времето за изпълнение на изхода на простия кодов оператор = 10 * 5, а времето, необходимо за изпълнението му, е 0,06127880399999999.
Хрониране на няколко реда в python код
Има два, които можете да изпълните множество редове код в timeit.timeit (), като използвате точка и запетая или като запазите кода, затворен като низ с тройни кавички.
Ето примери, които показват работата му.
Пример 1: Използване на точка и запетая
import timeitprint("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Изход:
The time taken is 0.137031482
Пример 2: Използване на тройни кавички
import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))
Изход:
C:\pythontest>python testtimeit.pyThe time taken is 0.182619178
timeit - Методи:
Ето 2 важни метода timeit
timeit.default_timer () : Това ще върне времето по подразбиране при изпълнение.
timeit.repeat (stmt, setup, timer, repeat, number) : същото като timeit (), но с повторение timeit () се извиква колко пъти е дадено повторение.
Пример за програма 1:
# testing timeit()import timeitimport_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 timeitimport randomdef 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.220261875The time difference is : 0.0004737320000000045
Пример 3: timeit.repeat ()
# testing timeit()import timeitimport_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.
Обобщение
Timeit () се използва за получаване на времето за изпълнение за дадения малък код
Параметри, използвани с timeit ()
- stmt: Това ще отнеме кода, който искате да измерите времето за изпълнение
- настройка: Това ще съдържа подробности за настройка, които трябва да бъдат изпълнени преди stmt
- timer: Това ще има стойността на таймера, timeit () вече има зададена стойност по подразбиране и ние можем да я игнорираме.
- номер: stmt ще се изпълни според номера, даден тук.