gpt4 book ai didi

python - lru_cache 转储到文件中并再次加载回内存中

转载 作者:太空宇宙 更新时间:2023-11-04 03:17:26 25 4
gpt4 key购买 nike

Python3functools 包中,有一个 lru_cache() 装饰器可以内存您的函数调用。

有没有办法让我将这个缓存转储到一个文件中,然后再将文件加载回内存中?

我在 functools 文档中找不到此功能。实现上述要求的推荐方法是什么,最好是只涉及 Python 的解决方案?

最佳答案

我不知道解决这个问题的标准方法。但是你可以这样写你的注释:

def diskcached(cachefile, saveafter=1):
def cacheondisk(fn):
try:
with open(cachefile, 'rb') as f:
cache = pickle.load(f)
except:
cache = {}
unsaved = [0]

@wraps(fn)
def usingcache(*args, **kwargs):
try:
key = hash((args, kwargs))
except TypeError:
key = repr((args, kwargs))
try:
ret = cache[key]
except KeyError:
ret = cache[key] = fn(*args, **kwargs)
unsaved[0] += 1
if unsaved[0] >= saveafter:
with open(cachefile, 'wb') as f:
pickle.dump(cache, f)
unsaved[0] = 0
return ret

return usingcache

return cacheondisk

和一起使用

@diskcached("filename_to_save")
def your_function():
...

关于python - lru_cache 转储到文件中并再次加载回内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35742636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com