Тёмный

🚀 В 5000 раз ускориться за счет кэширования функции. Как правильно использовать lru_cache в Phyton. 

PythonGuru
Подписаться 24 тыс.
Просмотров 1,1 тыс.
50% 1

Полезный декоратор lru_cache в Phyton
Правильное использование позволит вам ускорить функции достаточно сильно. Но если вы не понимаете, механизма работы, то вы можете не то, что не добиться ускорения функции, но также и потерять за счет большего расхода оперативной памяти.
В каких случаях это использовать, чтобы добиться желаемого эффекта, подробно рассмотрено в данном видео

Опубликовано:

 

30 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 9   
@_balancy_
@_balancy_ Год назад
С python3.9 можно использовать cache вместо lru_cache для читаемости
@PythonGuru_
@PythonGuru_ Год назад
C маленькой поправкой - cache это альяс для lru_cache(maxsize=None)
@Dryagin_Andry
@Dryagin_Andry Месяц назад
Разве у такого канала могут хейтеры? Просто информация доступным языком, с примерами. Что тут может не понравиться? 🤔
@PythonGuru_
@PythonGuru_ Месяц назад
бывают )
@АлександрБулыга-н2г
Я что-то не понимаю, как при вызове factorial(1000) в hits получилась цифра с десятью порядками. Функция factorial рекурсивно выполнится 1000 раз и при этом не должно быть повторений аргументов, т.е. каждый вызов будет с новым n.
@PythonGuru_
@PythonGuru_ Год назад
потому что это рекурсивная функция. Специфика исполнения. Рассчет, запись в стек, рассчет, в стек….потом раскрутка из стека
@АлександрБулыга-н2г
Что такое рекурсия и как она сжирает стек я знаю. Я вызвал factorial(1000) и factorial_lru(1000), они у меня отработали за одно время и это логично. В рекурсивном вызове с каждым аргументом функция factorial/ вызывается ровно один раз. Я не учёл того, что вы делаете замеры с помощью %timeit , а он много раз дергает factorial и тут уже кэш в factorial_lru решает.
@ljubimishj
@ljubimishj Год назад
@@АлександрБулыга-н2г time показывает время выполнения кода. От начало до конца, он ничего не дергает. timeit гоняет в цикле, тут я могу согласиться с идеей дерганья
@АлександрБулыга-н2г
​@@ljubimishj, да вы правы, усредняет именно %timeit , я её имел ввиду. Спасибо, что поправили, я исправил свой коммент выше.
Далее
ЭЛЕКТРОГИТАРА ИЗ АШАНА
19:07
Просмотров 2,9 млн
C in 100 Seconds
2:25
Просмотров 3,1 млн
Декораторы и модуль functools
1:09:10
Просмотров 40 тыс.