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

Python 函数缓存

  • 作用
    缓存不同参数组合的计算结果,命中缓存可以直接返回结果。
  • 使用示例
    import time
    from functools import lru_cache@lru_cache(maxsize=128)  # 指定128个不同参数组合的调用结果,lru策略,设置为None表示无上限
    def test(step: int, turns: int) -> int:total = 0for _ in range(turns):total += stepreturn total# 打印初始的缓存信息
    print(test.cache_info())# 测试缓存创建前函数耗时
    start = time.time()
    test(1, 1000 * 1000 * 30)
    end = time.time()
    print(end - start)
    print(test.cache_info())# 测试缓存创建后函数耗时
    start = time.time()
    test(1, 1000 * 1000 * 30)
    end = time.time()
    print(end - start)
    print(test.cache_info())# 清理缓存
    test.cache_clear()
    # 测试清理缓存后函数耗时
    start = time.time()
    test(1, 1000 * 1000 * 30)
    end = time.time()
    print(end - start)
  • lru缓存策略补充介绍
    """
    lru策略:
    1.缓存满了怎么办: 当缓存达到 maxsize 限制时,需要为新的缓存项腾出空间
    2.淘汰规则: LRU 会淘汰最长时间没有被访问过的缓存项
    3.访问更新: 每次访问缓存项(无论是读取还是写入),都会将该项标记为"最近使用"
    """
  • 注意事项
    1.参数不能有可变类型,只能是不可变类型。
    2.函数内计算过程不能依赖外部变量,否则可能导致相同参数组合产出不同结果,但是函数给出已缓存结果,导致程序出现bug。

     

http://www.rkmt.cn/news/7310.html

相关文章:

  • Rhino 8.10 中文版下载安装步骤(附详细图文说明)
  • 深入解析:第十四届蓝桥杯青少组C++选拔赛[2022.12.18]第二部分编程题(2、字符翻转)
  • 企业级负载均衡方案:Nginx vs HAProxy - 从0到1的完整实战指南 转载
  • 程序设计小学期小计
  • 企业级实时消息推送系统的架构设计,一文即懂!
  • 3dma渲染噪点成因排查及优化方案 - 详解
  • 高级版Duplicate Same Files Searcher v10.7.0:秒扫全盘重复档神器 - 教程
  • vxe-tree-select 树形下拉框当使用懒加载数据时如何回显
  • 实用指南:基于RSim的域控制器HIL测试系统设计方案
  • 完整教程:新手怎么利用Qt连接汇川Easy系列的小型PLC
  • 3D影像地形图的制作:利用ArcGISPro - 指南
  • n8n实践-使用n8n搭建一个定时发送天气预报邮件的工作流
  • Cython-编程学习指南第二版-全-
  • 印度尼西亚股票数据API对接实现
  • 一天一款实用的AI工具,第1期,AI标题生成工具
  • 详细介绍:智慧校园统一身份认证中心:一个账号畅行校园内外
  • LlamaIndex 项目深度技术分析 - 详解
  • qoj853 Flat Organization
  • 2025年9月中国数据库排行榜:达梦挺进榜眼位,崖山首入前十强
  • linux proc fs node
  • 【稳定检索、线上线下参会、马理工主办】第十一届建筑、土木与水利工程国际学术会议(ICACHE 2025)
  • history路由模式下的nginx配置
  • createHashRouter
  • 设计模式 7章
  • 洛谷 P1967 [NOIP 2013 提高组] 货车运输 题解
  • 【每日一问】示波器探头校准技巧和校准原理是什么?
  • 向量数据库 FAISS、LanceDB 和 Milvus
  • ms sql dml 操作
  • cpu的各种寄存器及其功能
  • 学python的第6天