Некоторые ситуации, в которых декоратор @lru_cache может быть неэффективен:
- Функция вызывается один раз и в ней работает цикл. ru.stackoverflow.com В таком случае нет смысла мемоизировать функцию, так как для сохранения результатов нужна отправная точка. ru.stackoverflow.com
- В памяти хранится слишком много различных вызовов. proglib.io Если атрибуту maxsize декоратора @lru_cache присвоить значение None, то кэш будет расти без всякого удаления записей. proglib.io Это может стать проблемой. proglib.io
- Создаётся много экземпляров функции, и сборщик мусора не может их удалить. rednafi.com В таком случае может произойти переполнение рабочей памяти и сбой процесса. rednafi.com
Декоратор @lru_cache используется для мемоизации рекурсивных функций и для ускорения работы функций, которые долго выполняются из-за сложности вычислений или задержек ввода-вывода. szuckerman.github.io