缓存的了解

当我们在进行一些重复的计算时,可以适当的引入缓存如lru_cache来减少计算的时间,提高相应速率,

示例代码


@lru.cache(maxsize=3)
def test(n:num)->int:
    print(f"正在计算{n}")
    return n * n
    
test(1)
test(1)
test(2)
test(3)

代码执行结果

通过执行结果发现 我们在执行第二个test(1)的时候,似乎并没执行内部逻辑如打印 :正在计算... ,而是直接就返回了结果,但是后面的test(2) 和 test(3) 又有执行内部逻辑

结论

1、缓存原理

1-1缓存key

每次你调用test(n)时,lru_cache都是将参数作为缓存的key,然后他会检查是否之前已经计算过这个n对应的结果

1-2缓存值

对应n的结果 会被存储在缓存中 ,当相同的key被调用时,lru_cache会直接返回缓存的结果

1-3缓存淘汰机制

maxsize=3,指定了最多缓存3个,当超过时,最早的缓存的结果会被丢弃

本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:alixiixcom@163.com