Как работает functools.lru_cache?

Middle
313 просмотров
AFK Offer AI

lru_cache — декоратор для мемоизации. @lru_cache(maxsize=128) def fib(n): return fib(n-1) + fib(n-2) if n > 1 else n. LRU — Least Recently Used, вытесняет старые при заполнении. maxsize=None — без ограничений (растёт бесконечно). func.cache_info() — hits, misses, maxsize, currsize. func.cache_clear() — очистить кеш. Аргументы должны быть hashable (нельзя list, dict). @cache — Python 3.9+, alias для lru_cache(maxsize=None). Потокобезопасен. Для async: нужен aiocache или async_lru. Минусы: кеш в памяти процесса, не shared между процессами. Для production — Redis.

Следующий вопрос

В чём разница между SQLAlchemy Core и ORM?