Функция python timeit


В python timeit используется для того, чтобы выяснить время выполнения скрипта или определенного участка кода. Код выполняется несколько раз, возвращается самый лучший результат.



Использование python timeit


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



Рассмотрим более простой пример.

mcedit hello.py

#!/usr/bin/python3


def hello(a):
    b = a * 2 
    print (b)


if __name__=='__main__':
    from timeit import Timer
    t = Timer(lambda: hello(10))
    print (t.timeit(number=14))



Здесь функция hello с одним передаваемым ей аргументом — это тестируемый код.


В функции main определяется, что hello требуется выполнять передавая значение аргумента 10. Выполнение требуется 14 раз.



Запускаем скрипт:

python3 hello.py

20
20
20
20
20
20
20
20
20
20
20
20
20
20
0.0001920969998536748



Поскольку код максимально упрощен какого-либо разброса не получилось, однако есть финальный результат — усредненное время выполнение.

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



Принцип для реальных скриптов остается тем же, меняется в общем случае только сама функция, которая требуется проверять.



Можно выполнять скрипты и через Linux утилиту time:

#!/usr/bin/python3

import os

os.system("time python3 hello.py")


Можно вызывать не однократное исполнение, запуск в цикле for.


Для той же цели подойдет и модуль subprocess. Он позволяет получать информацию в более удобной для дальнейшей обработки форме.

Сказать спасибо