📅  最后修改于: 2023-12-03 15:34:06.595000             🧑  作者: Mango
LRU(Least Recently Used)缓存是一种缓存算法,它将最近最少使用的数据项淘汰,以在缓存容量达到上限时腾出空间。在基于内存的持久性存储系统中,LRU可以在一定程度上提高系统性能。
Python中的“functools”模块提供了一个装饰器“lru_cache()”,可以使用它来缓存函数的结果,从而加速重复调用。
from functools import lru_cache
@lru_cache(maxsize=128)
def fibonacci(n):
if n < 2:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
print([fibonacci(n) for n in range(16)])
上面的代码计算了斐波那契数列的前16个数,使用了“lru_cache()”装饰器来缓存函数结果。由于斐波那契数列的计算是一个递归过程,如果每次都要重新计算,会非常耗费时间。当调用同一个n时,使用缓存后,函数结果将直接从缓存中返回,而不需要重新计算,从而加速计算。
装饰器“lru_cache()”可以使用两个参数: