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

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

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

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

import timefrom cachier import cachierfrom datetime import timedelta@cachier(stale_after=timedelta(seconds=10))def demo(x: int, y: int):        time.sleep(2)        return x * yfor 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” 即可收费取得