Что такое Python Timeit ()?
Python timeit () - это метод в библиотеке Python для измерения времени выполнения данного фрагмента кода. Библиотека Python выполняет оператор кода 1 миллион раз и обеспечивает минимальное время, необходимое для данного набора фрагментов кода. Python timeit () - полезный метод, который помогает проверить производительность кода.
Синтаксис:
timeit.timeit(stmt, setup,timer, number)
Параметры
- stmt : это займет код, для которого вы хотите измерить время выполнения. Значение по умолчанию - «пройти».
- setup : в нем будут сведения о настройке, которые необходимо выполнить перед stmt. Значение по умолчанию - «пройти».
- 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: это займет код, который вы хотите измерить время выполнения
- setup: в нем будут сведения о настройке, которые необходимо выполнить перед stmt
- timer: у него будет значение таймера, timeit () уже имеет значение по умолчанию, и мы можем его игнорировать.
- число: stmt будет выполняться в соответствии с номером, указанным здесь.