关于python:Python中更好用的函数运算缓存

函数运算缓存,顾名思义就是咱们能够针对指定的函数,让其记住过往参数输出和返回后果,使得后续接管到雷同的参数时跳过函数运算,间接返回已缓存的后果值。

很多敌人应该晓得Python规范库里functools.lru_cache能够做函数运算缓存,然而它的性能切实是太简陋了,像过期工夫设置之类的性能都没有。

而咱们能够应用第三方库cachier来代替,它的根本应用形式非常简单,应用pip install cachier实现装置后,咱们来看一个简略的示例:

这里咱们定义一个具备肯定运算耗时的函数,利用cachier.cachier()装璜,并利用参数stale_after设置缓存到期工夫为10秒:

import time
from cachier import cachier
from datetime import timedelta

@cachier(stale_after=timedelta(seconds=10))
def demo(x: int, y: int):
    
    time.sleep(2)
    
    return x * y

for i in range(10):
    print('-'*50)
    print(f'第{i+1}次执行')
    start = time.time()
    demo(1, 1)
    print(f'耗时{round(time.time() - start, 2)}秒')

    time.sleep(2)

过程打印记录如下:

能够察看到,咱们的函数依照设定好的过期工夫进行着缓存。除此之外,cachier还有很多其余实用个性,譬如基于mongodb实现分布式存储等

最近整顿了几百 G 的 Python 学习材料,蕴含新手入门电子书、教程、源码等等,收费分享给大家!想要的返回 “Python 编程学习圈”,发送 “J” 即可收费取得

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理