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

Что такое Python Timeit()?

Python timeit() — это метод в библиотеке Python для измерения времени выполнения данного фрагмента кода. Библиотека Python запускает оператор кода 1 миллион раз и обеспечивает минимальное время, затраченное на заданный набор фрагментов кода. Python timeit() — полезный метод, помогающий проверить производительность кода.

Синтаксис

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

параметры

  • STMT: потребуется код, время выполнения которого вы хотите измерить. Значение по умолчанию — «пройти».
  • установка: Это будет иметь настройкиtails это необходимо выполнить до stmt. Значение по умолчанию — «пройти».
  • таймер: здесь будет значение таймера, у 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() , но с повтором 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: это будет установка details который будет выполнен до выполнения кода.
  • -t: для этого вы можете использовать time.time()
  • -c: для этого вы можете использовать time.clock()
  • -h: за помощь
  • оператор кода: Код деtails.

Пример

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: это займет код, время выполнения которого вы хотите измерить.
  • настройка: это будет настройка деtails это нужно выполнить до stmt
  • timer: у него будет значение таймера, у timeit() уже установлено значение по умолчанию, и мы можем его игнорировать.
  • номер: stmt будет выполняться в соответствии с номером, указанным здесь.