tgoop.com/pro_python_code/1150
Last Update:
🚀🧠**lru_cache**: отличная техника для эффективного кодинга!🚀🧠
В данном коде `lru_cache`
используется в качестве декоратора для функции fibonacci
. Поскольку последовательность Фибоначчи может быть вычислительно затратной для больших входных данных, кэширование результатов для каждого вызова может значительно ускорить последующие вызовы с теми же аргументами.
Однако декоратор кэширования не следует использовать в каждом конкретном случае. Для функций, результаты которых меняются даже при одинаковых входных данных, или для функций, выходными данными которых являются изменяемые объекты, кэширования следует избегать.
При первом вызове `fibonacci(35)`
функция вычислит результат обычным способом, учитывая рекурсивный характер последовательности Фибоначчи. Это может занять много времени.
Однако при втором вызове `fibonacci(35)` вместо повторного вычисления функция просто найдет значение в кэше и вернет его. В результате время выполнения второго вызова будет значительно меньше, что свидетельствует о пользе кэширования.
Фактическое время выполнения на вашей машине будет зависеть от ее вычислительной мощности, но, скорее всего, вы увидите заметную разницу между двумя вызовами.
Помните, что lru_cache
может ускорить только последующие вызовы с теми же параметрами. Если вызвать fibonacci(36)
после fibonacci(35)
, то все равно придется вычислять значение. Однако вычисление будет происходить быстрее, чем без кэша, так как fibonacci(35)
уже закешировано, и ему нужно только добавить к нему fibonacci(34)
.
@pro_python_code
BY Python RU

Share with your friend now:
tgoop.com/pro_python_code/1150