Python Timeit() із прикладами

Що таке Python Timeit()?

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

синтаксис

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

параметри

  • stmt: це візьме код, для якого ви хочете виміряти час виконання. Значення за замовчуванням – «pass».
  • установка: тут будуть деталі налаштування, які потрібно виконати перед stmt. Значення за замовчуванням – «pass».
  • таймер: Це матиме значення таймера, 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() , але з repeat 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: тут будуть деталі налаштування, які виконуватимуться перед виконанням коду.
  • -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 виконуватиметься згідно з наведеним тут номером.