lru_cache缓存

缓存是一种将定量数据加以保存以备迎合后续获取需求的处理方式,旨在加快数据获取的速度。数据的生成过程可能需要经过计算,规整,远程获取等操作,如果是同一份数据需要多次使用,每次都重新生成会大大浪费时间。所以,如果将计算或者远程请求等操作获得的数据缓存下来,会加快后续的数据获取需求

functools.lru_cache

l ru_cache缓存的简单实用

import time
import functools

@functools.lru_cache(maxsize=12)
def show_func(x):
    time.sleep(2)
    return x

print(show_func(1))
print(show_func(2))
print(show_func(2))

在这个函数中我们加了一个sleep,所以2s后才会打印出结果,但因为show_func(2)的结果被缓存了,所以第二次调用这个函数可以直接得到结果

其他参数:

maxsize: 可以简单理解为最多可以缓存多少种不同的结果,默认为空(缓存所有的)。

# 查看缓存信息
print(show_func.cache_info())  # CacheInfo(hits=1, misses=2, maxsize=12, currsize=2)
# 清除缓存
show_func.cache_clear()
print(show_func.cache_info())  # CacheInfo(hits=0, misses=0, maxsize=12, currsize=0)
posted @ 2021-10-16 14:12  死里学  阅读(308)  评论(0)    收藏  举报