Python Timeit() с примерами
Что такое Python Таймит()?
Python timeit () это метод в Python библиотека для измерения времени выполнения данного фрагмента кода. Python библиотека запускает оператор кода 1 миллион раз и обеспечивает минимальное время, затраченное на заданный набор фрагментов кода. Python timeit() — полезный метод, помогающий проверить производительность кода.
Синтаксис
timeit.timeit(stmt, setup,timer, number)
параметры
- STMT: потребуется код, время выполнения которого вы хотите измерить. Значение по умолчанию — «пройти».
- установка: здесь будут указаны сведения о настройке, которые необходимо выполнить перед stmt. Значение по умолчанию — «пройти».
- таймер: здесь будет значение таймера, у 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() , но с повтором 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: это займет код, время выполнения которого вы хотите измерить.
- настройка: здесь будут указаны сведения о настройке, которые необходимо выполнить перед stmt.
- timer: у него будет значение таймера, у timeit() уже установлено значение по умолчанию, и мы можем его игнорировать.
- номер: stmt будет выполняться в соответствии с номером, указанным здесь.