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

Содержание:

Anonim

Что такое 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 будет выполняться в соответствии с номером, указанным здесь.