用 Python 的 LRU Cache 优化函数性能

简介: 用 Python 的 LRU Cache 优化函数性能

用 Python 的 LRU Cache 优化函数性能

在日常开发中,我们常会遇到一些计算成本高但调用频繁的函数。Python 标准库 functools 中的 lru_cache 装饰器可以轻松实现缓存功能,显著提升程序性能。

什么是 LRU Cache?

LRU(Least Recently Used)是一种缓存淘汰策略,当缓存达到容量上限时,会优先移除最久未使用的数据。lru_cache 将函数调用结果缓存起来,当相同参数再次传入时直接返回缓存结果,避免重复计算。

实战示例

下面以计算斐波那契数列为例展示其效果:

from functools import lru_cache
import time

# 未使用缓存
def fib_no_cache(n):
    if n < 2:
        return n
    return fib_no_cache(n-1) + fib_no_cache(n-2)

# 使用缓存
@lru_cache(maxsize=128)
def fib_cached(n):
    if n < 2:
        return n
    return fib_cached(n-1) + fib_cached(n-2)

# 性能对比
start = time.time()
fib_no_cache(35)
print(f"无缓存耗时: {time.time()-start:.2f}秒")

start = time.time()
fib_cached(35)
print(f"有缓存耗时: {time.time()-start:.2f}秒")

测试显示,计算 fib(35) 时,使用缓存可将耗时从数秒降低到毫秒级,差异显著。

使用建议

  1. 适用场景:纯函数(相同输入必得相同输出)、计算密集型函数、递归函数
  2. 设置合理的 maxsize:根据内存限制和函数特性调整缓存大小
  3. 注意内存占用:缓存参数和结果会占用内存,需监控使用情况

lru_cache 是 Python 中“开箱即用”的性能优化工具之一,合理使用能让代码既简洁又高效。

Python #性能优化 #编程技巧 #开发工具

相关文章
|
20天前
|
数据采集 缓存 数据安全/隐私保护
掌握Python装饰器:用魔法简化代码逻辑
掌握Python装饰器:用魔法简化代码逻辑
183 133
|
20天前
|
测试技术 开发者 Python
Python装饰器:让代码优雅复用的魔法
Python装饰器:让代码优雅复用的魔法
233 135
|
20天前
|
安全 IDE 开发工具
Python类型注解:让代码更清晰可维护
Python类型注解:让代码更清晰可维护
193 144
|
20天前
|
监控 Python
Python装饰器:让代码更优雅的魔法
Python装饰器:让代码更优雅的魔法
191 140
|
14天前
|
SQL 安全 数据库
SQL注入:从登录框到数据泄露的十分钟
SQL注入:从登录框到数据泄露的十分钟
208 140
|
20天前
|
数据采集 API 调度
Python异步编程入门:告别“等待”的艺术
Python异步编程入门:告别“等待”的艺术
263 136
|
20天前
|
BI Python
告别繁琐拼接:用Python f-string点亮你的代码
告别繁琐拼接:用Python f-string点亮你的代码
202 139
|
14天前
|
SQL 安全 网络安全
从黑客视角看SQL注入:你的数据真的安全吗?
从黑客视角看SQL注入:你的数据真的安全吗?
218 138
|
20天前
|
机器学习/深度学习 数据采集 人工智能
Python:让数据科学触手可及
Python:让数据科学触手可及
202 140
|
20天前
|
设计模式 监控 Python
Python装饰器:让代码优雅的“魔法工具箱”
Python装饰器:让代码优雅的“魔法工具箱”
193 134

热门文章

最新文章