当前位置: 首页 > news >正文

lru_cache用法

在python中,lru_cache是一个装饰器, 是 Python 标准库中 functools 模块的一部分。lru_cache 装饰器可以用来为一个函数添加一个缓存系统。这个缓存系统会存储函数的输入和对应的输出。如果函数被调用,并且给出了已经缓存过的输入,那么函数就不会重新计算,而是直接从缓存中获取对应的输出。

LRU 是 “Least Recently Used” 的缩写,意思是 “最近最少使用”。LRU 缓存就是一种缓存淘汰算法,当缓存达到预设的容量上限时,会优先淘汰最近最少使用的数据。

from functools import lru_cache # Python 3.2+ only 引入lru_cache@lru_cache(maxsize=None)
def fib(n):print(f"fib({n})")if n < 2:return nreturn fib(n-1) + fib(n-2)print("第一次:", fib(5))
print("第二次:", fib(5))
print("第三次:", fib(3))

输出结果:

fib(5)
fib(4)
fib(3)
fib(2)
fib(1)
fib(0)
第一次: 5
第二次: 5
第三次: 2

lru_cache 装饰器有两个可选参数:

  • maxsize:这个参数用来设置缓存的大小,将其设置为 None,那么缓存的大小就没有上限。
  • typed:如果你将这个参数设置为 True,那么 lru_cache 就会根据输入参数的类型分别进行缓存。

lru_cache 可以用于优化那些具有重复计算的递归函数(记忆化搜索),或者计算成本较高的函数。是通过空间换取时间的方式来提高程序的性能的


http://www.mrgr.cn/news/64611.html

相关文章:

  • 近期学习前端的心得
  • Python 条件语句
  • 幼儿园篮球游戏
  • Java第九天(实训学习(八)练习题)
  • 【大语言模型学习笔记】第一篇:LLM大规模语言模型介绍
  • Android Studio插件版本与Gradle 版本对应关系
  • 【含开题报告+文档+源码】基于Web的房地产销售网站的设计与实现
  • C++模拟真人动态生成鼠标滑动路径
  • 智能网联汽车:人工智能与汽车行业的深度融合
  • 苹果安装python环境
  • DDR Study - LPDDR4 TTR/PPR/ECC/PASR/DBI
  • Qt中的Model与View 4:QStandardItemModel与QTableView
  • 将数据条格式应用于列
  • Docker小记
  • 使用Docker Compose构建多容器应用
  • 农作物叶片病害检测数据集汇总(猫脸码客 第235期)
  • Spring ApplicationContext接口
  • 【1个月速成Java】基于Android平台开发个人记账app学习日记——第4天,注册登录功能设计
  • 【k8s】-备份恢复etcd数据
  • 【LwIP源码学习4】主线程tcpip_thread
  • http://43.139.152.26 枪声问题(桂城真题)
  • 构 造 器
  • linux perf 环境部署和基本测试(基于Ubuntu20.04)
  • Qt中的Model与View 2
  • Linux -- 初识信号
  • Guava Cache 原理与实现剖析