Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Python timeit(): измерение времени выполнения с практическими примерами

Что такое Python timeit()?

Python timeit() — встроенный модуль для измерения времени выполнения небольших фрагментов кода с высокой точностью. По умолчанию он запускает инструкцию один миллион раз и сообщает о самом быстром запуске, что помогает сравнивать производительность разных реализаций.

Синтаксис

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

Параметры

Сначала импортируйте модуль:

import timeit

Пример 1 — Замер простого выражения

# Тест базовой арифметической операции

import timeit
print(timeit.timeit("output = 10*5"))

Типичный вывод:

0.06127880399999999

Это показывает время (в секундах), затраченное на самый быстрый из миллиона запусков.

Замер многострочного кода

timeit может обрабатывать многострочный код, разделяя инструкции точками с запятой или передавая тройную кавычку.

Использование точек с запятой

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

Вывод:

The time taken is 0.137031482

Использование тройных кавычек

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

Ключевые методы

Пример 1 — Использование timeit.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()

# Замер одного вызова функции
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()

# Запуск теста пять раз и захват лучших времен
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]

Каждая запись — лучшее время для одной итерации из 1 000 000 запусков.

Использование из командной строки

Можно вызвать timeit прямо из оболочки:

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

Пример

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

Другой удобный способ — вызвать timeit из REPL:

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 необходим для бенчмаркинга коротких Python-фрагментов. Его параметры просты:

Обязательно используйте timeit для точных, воспроизводимых измерений.

Python

  1. Python: получение текущего времени и работы с часовыми поясами
  2. Освоение модуля time в Python: функции, структуры и практические примеры
  3. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  4. Мастерство строк форматирования format() в Python: понятные примеры
  5. Мастерство метода String.find() в Python: синтаксис, примеры и альтернативы
  6. Освоение лямбда-функций Python: практические примеры и лучшие практики
  7. Функция round() в Python: подробное объяснение с практическими примерами
  8. Освоение функции map() в Python: синтаксис, примеры и лучшие практики
  9. Counter в collections Python: эффективное подсчёт, обновление и арифметические операции
  10. Понимание type() и isinstance() в Python: практические примеры