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 виконуватиметься згідно з наведеним тут номером.