Как замерять время выполнения кода в Python | timeit vs time

preview_player
Показать описание
Как замерять скорость выполнения кода при помощи timeit

В этом видео я расскажу, почему неправильно замерять время выполнения Python кода через time и как использовать default_timer

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

Примеры кода тут:

Ссылки:

Таймкоды
00:00 Начало
02:32 Отличие в работе time и timeit
09:45 Алгоритмическая оптимизация кода
12:21 Замер времени одного выполнения через default_timer
13:56 Декоратор для замера времени выполнения функции
15:16 Итоги
Рекомендации по теме
Комментарии
Автор

Блестящее объяснение! Я и не знал, что есть специальный модуль timeit для замера скорости работы функций/методов.

yakovlichevau
Автор

Выйти с платформы на Ютуб - прекрасное решение!

Human_Dm
Автор

Жена отправляет мужа-программиста в магазин: - Купи батон хлеба, если
будут яйца - возьми десяток.
Муж возвращается из магазина с десятью батонами.
- Ты зачем столько хлеба купил?
- Так ведь яйца были...

kseniasunny
Автор

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

antonzuzlov
Автор

Здравствуйте, Сурен! Спасибо за ваше видео. Понравился ваш вывод про правильную интерпритацию результатов - сами цифры ничего не значат, нужно смотреть на разницу в порядке (порядках) цифр.

Тем не менее в тестах столкнулся с таким наблюдением (помогите, пожалуйста, его уточнить):
на примере любой из функции суммы до n (из вашего видео) пытался приравнять timeit() к "голому" time.perf_counter.
Делал замер единичного выполнения функции, но timeit('gc.enable()', number=1) всегда показвал результат меньше (быстрее) от 2 раз и до нескольких порядков.
Есть ли что-то ещё под капотом timeit() кроме отключения GC, что может способствовать более низкому показателю времени чем это показывает time.perf_counter() ?
В видео вы говорили про более частый "тик" у timeit, но он должен быть такой же как и у time.perf_counter().

leonid.charey
Автор

Как все сложно 😮😮😮 особенно для новичков, все по разному говорят, к единому мнению никто не приходит 😢

Harekdays
Автор

А чем timeit() лучше time.process_time() ?

MrPalianytsia
Автор

Кто нибудь объяснит:
Одна и та же функция(с request)
Как на видео делаю таймер код одинаковый:
Python v11 = 8.7 сек
Python 8.10 = 2.6 сек
В чем прикол?

sanyajc