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

Съдържание:

Anonim

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