← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 33: Прискорення повторних обчислень

Технологія: Python

Номер лабораторної: 33 · Рівень: middle

Тема: Кешування через lru cache

Повний опис / сценарій лабораторної:

Meta: навчитися кешувати результати чистих функцій де це безпечно.



Krok 1. Створити файл src/app/cache33.py.

Komandi: cd ~/python_lab1/src; touch app/cache33.py



Krok 2. Додати повільну функцію яка імітує обчислення через sleep.

Poyasnennya: наприклад pow slow з паузою у одну секунду.



Krok 3. Використати декоратор functools lru cache поверх цієї функції.



Krok 4. Викликати функцію з однаковими аргументами кілька разів і заміряти час.



Krok 5. Перевірити статистику кешу через атрибут cache info.



Krok 6. Додати виклик cache clear і переконатися що після цього час знову зростає.



Krok 7. Занотувати обмеження кешу по розміру та типами аргументів.



Krok 8. Продумати приклади функцій у сервісі де lru cache дасть виграш, наприклад довгі запити до конфіг сервісу.



Krok 9. Порівняти такий кеш з зовнішнім кешем типу redis за можливостями і складністю.



Krok 10. Mini zvit.

Zavdannya: опиши критерії вибору функцій які можна безпечно кешувати.