《深入理解 functools.lru_cache:原理、实战与性能优化全解析》
“缓存不是魔法,而是对时间的尊重。”
在 Python 的日常开发中,我们经常会遇到这样的问题:某些函数计算代价高昂、调用频繁,但其输入输出却高度重复。比如递归计算斐波那契数列、频繁读取配置文件、或是执行数据库查询等。此时,如果我们能“记住”之前的计算结果,就能显著提升程序性能。
Python 标准库中的 functools.lru_cache 正是为此而生的利器。它以极低的侵入性,为函数添加了高效的缓存机制。本文将带你从原理到实战,全面掌握 lru_cache 的使用与实现机制,助你写出更快、更优雅的 Python 代码。
一、什么是 lru_cache?
functools.lru_cache 是 Python 3.2 引入的一个装饰器,用于为函数添加 最近最少使用(Least Recently Used, LRU)缓存。它会自动记录函数的输入参数和对应的返回值,当函数再次以相同参数调用时,直接返回缓存结果,避免重复计算。
快速示例:
from functools import lru_cache
@lru_cache(maxsize=128)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
print(fib(35)) # 快得惊人!
二、为什么使用 LRU 缓存?
✅ 提升性能
避免重复计算,尤其适用于纯函数(相同输入总是返回相同输出)。

最低0.47元/天 解锁文章
65

被折叠的 条评论
为什么被折叠?



