缓存的了解
当我们在进行一些重复的计算时,可以适当的引入缓存如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个,当超过时,最早的缓存的结果会被丢弃