乐趣区

关于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”即可收费取得

退出移动版