Рубрики
Без рубрики

Module Timeit Python

Модуль eymit Python, измерение времени выполнения кода Python, пример питона, модуль времени в image в Python, Python Timeit Function, Python Tireit Default_timer, учебник Python

Автор оригинала: Pankaj Kumar.

Когда дело доходит до измерения времени исполнения для куска кода Python, у нас есть много идей. Как насчет просто используя модуль времени и сохранение времени до и после выполнения программы? Это звучит легко и хорошо, но это не так.

Python Timeit.

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

Время течения Модуль запускает кусок кода в 1 миллион раз (значение по умолчанию) и учитывает минимальное количество времени, которое потребовалось, чтобы запустить этот кусок кода. Давайте посмотрим на модуль в действии здесь!

Найти время исполнения кода Python

Есть много способов использовать Время течения модуль. Один из самых простых способов – использовать его прямо на Python CLI. Мы будем делать это в нашем первом примере, прежде чем перейти к еще нескольким примерам.

Пример питона

Начнем с помощью Время течения Модуль непосредственно из Python CLI. Когда используется CLI, мы заметим, что модуль otelf не решает количество повторений, выполняемых для того же куска кода. Вот выборки команд, которые мы выполняли для разных выражений:

$ python -m timeit '"-".join(str(n) for n in range(100))'
$ python -m timeit '"-".join([str(n) for n in range(100)])'
$ python -m timeit '"-".join(map(str, range(100)))'

Давайте посмотрим на вывод этой программы:

Время поиска исполнения из CLI

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

Сроки куска кода

Лучшая вещь с Время течения Модуль состоит в том, что мы можем решить точный фрагмент кода, для которого мы хотим измерить производительность для. Мы определим код установки и код для теста производительности отдельно. Код установки выполняется только один раз, тогда как основной код работает 1 миллион раз:

import timeit
 
# setup code is executed just once
mysetup = "from math import sqrt"
 
# main code snippet for performance check
mycode = '''
def example():
    mylist = []
    for x in range(100):
        mylist.append(sqrt(x))
'''
 
# timeit statement
print(timeit.timeit(setup = mysetup,
                    stmt = mycode,
                    number = 10000))

Давайте посмотрим на вывод этой программы:

Timing Basic Loop

С помощью этого кода мы также продемонстрировали, как мы можем контролировать количество раз, когда код должен повторяться для проверки производительности.

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

Время записи для многострочного кода из CLI

Если сделать сценарий не выполнен для вас, и вы хотите быстро посмотреть код для его производительности, используя код непосредственно из CLI, также является опцией:

$ python3 -m timeit -s \
> "jd = {}" \
> "for idx in range(1000):" \
> "  jd[str(idx)] = idx"

Давайте посмотрим на вывод этой программы:

Timing Multi-Line Code на CLI

Как правило, сравнивая два блока кода

Если вы хотите действительно просто простую идею, по сравнению с двумя кусками кода о том, как быстрым бегите образуют другое, есть довольно простой способ сделать это:

import timeit

start_time = timeit.default_timer()
func1()
print(timeit.default_timer() - start_time)

start_time = timeit.default_timer()
func2()
print(timeit.default_timer() - start_time)

Просто используйте default_timer () Функция, чтобы начать время и снова, чтобы найти значение для этого. Это самый простой способ использовать модуль для поиска производительности кода. Это также заставляет вас сделать ваш код в виде функций, которые являются модульными объектами.

Еще один способ сделать то же самое, не касаясь оригинального сценария, скажи test.py который содержит функции, такие как:

def RadixSort(): ...
def TimSort(): ...

Используйте модуль Timeit, как это:

$ python -m timeit -s 'import test' 'test.RadixSort()'
$ python -m timeit -s 'import test' 'test.TimSort()'

Довольно легко, верно?

Заключение

В этом уроке мы видели, как мы можем измерить производительность небольших кусочков Python Code, используя Время течения Модуль, используя CLI и скрипты.