Учебники

35) Python Timeit ()

Метод timeit () доступен в библиотеке времени Python. Он используется для получения времени выполнения для небольшого приведенного кода. Библиотека выполняет оператор кода 1 миллион раз и предоставляет минимальное время, взятое из набора. Это полезный метод, который помогает в проверке производительности кода.

Синтаксис:

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

параметры

  • stmt : это возьмет код, для которого вы хотите измерить время выполнения. Значением по умолчанию является «pass».
  • setup : это будет иметь детали настройки, которые должны быть выполнены перед stmt. Значением по умолчанию является «pass».
  • timer : у него будет значение таймера, timeit () уже имеет значение по умолчанию, и мы можем его игнорировать.
  • номер : STMT будет выполняться в соответствии с номером, приведенным здесь. Значением по умолчанию является 1000000.

Для работы с timeit () нам нужно импортировать модуль, как показано ниже:

import timeit

Первый пример

Вот простой пример функции timeit ()

Пример кода 1:

# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))

Вывод:

0.06127880399999999

Мы видели простой пример, который дает нам время выполнения простого оператора кода output = 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.default_timer () : возвращает время по умолчанию при выполнении.

timeit.repeat (stmt, setup, timer, repeat, number) : то же, что и 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

Example 2:

default_timer() Example

# 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)

Output:

The start time is : 0.220261875
The time difference is : 0.0004737320000000045

Example 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))

Output:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() works similar to timeit.timeit() function, with the only difference it takes in the repeat argument and gives back the execution time in array format with values as per the repeat number.

Executing timing function timeit.timeit() inside command-line interface

The syntax to execute your function inside timeit() on the command line is as follows:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

Command line parameters:

  • -n N: the number of times you want the code to execute.
  • -r N: the number of times you want the timeit() function to repeat
  • -s S: this will have setup details that will get executed before code execution.
  • -t: for this, you can make use of time.time()
  • -c: for this, you can make use of time.clock()
  • -h: for help
  • code statement: The code details.

Example:

C:\pythontest>python -m timeit -s 'text="hello world"'
20000000 loops, best of 5: 13.1 nsec per loop

Another way you can execute inside command line is as shown below:

Example :

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>

Why is timeit() the best way to measure the execution time of Python code?

Here are a few reasons why we consider timeit() is the best way to measure execution time.

  • It runs the code statement 1 million times that is the default value, and from that, it will return you the minimum time taken. You can also increase/decrease the 1 million by setting the argument number in time () function.
  • While executing the test, the garbage collection is disabled every time by time () function.
  • timeit () внутренне занимает точное время в соответствии с используемой операционной системой. Например, он будет использовать time.clock () для операционной системы Windows и time.time () для Mac и Linux.

Резюме

Timeit () используется для получения времени выполнения для небольшого кода

Параметры, используемые с timeit ()

  • stmt: это займет код, который вы хотите измерить время выполнения
  • setup: у этого будут детали настройки, которые должны быть выполнены перед stmt
  • timer: у него будет значение таймера, timeit () уже имеет значение по умолчанию, и мы можем его игнорировать.
  • номер: STMT будет выполняться в соответствии с номером, приведенным здесь.