Що таке 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.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 (), з тією лише різницею, яку він бере в аргументі repeat і повертає час виконання у форматі масиву зі значеннями відповідно до числа повторення.
Виконання функції синхронізації 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 буде виконуватися відповідно до номера, вказаного тут.