| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python lru_cache缓存 -> 正文阅读 |
|
[Python知识库]python lru_cache缓存 |
@lru_cache装饰器可以提供缓存的功能,缓存?maxsize?组传入参数,在下次以相同参数调用时直接返回上一次的结果。用以节约高开销或I/O函数的调用时间。 举个列子: 普通计算斐波那契数列的递归代码
输出
使用lru_cache装饰器后,每次递归若有相同的参数调用,直接从缓存中取值,则fib(1)的调用只有一次,效率明显提升
输出
总结: 如果?maxsize?设为? 如果?typed?设置为true,不同类型的函数参数将被分别缓存。例如,? 被包装的函数配有一个? 为了衡量缓存的有效性以便调整?maxsize?形参,被装饰的函数带有一个? 该装饰器也提供了一个用于清理/使缓存失效的函数? 原始的未经装饰的函数可以通过? LRU(最久未使用算法)缓存?在最近的调用是即将到来的调用的最佳预测值时性能最好(例如,新闻服务器上最热门文章倾向于每天更改)。 缓存的大小限制可确保缓存不会在长期运行进程如网站服务器上无限制地增长。 一般来说,LRU缓存只在当你想要重用之前计算的结果时使用。因此,用它缓存具有副作用的函数、需要在每次调用时创建不同、易变的对象的函数或者诸如time()或random()之类的不纯函数是没有意义的。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/26 14:05:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |