记忆Python垃圾收集
例如,如果我使用类似于中的记忆Python垃圾收集,python,garbage-collection,Python,Garbage Collection,例如,如果我使用类似于中的memoize装饰器: 我是否需要担心内存不足和需要手动垃圾收集?例如,如果我有一个长期运行的Python进程,它会不断地进行记忆,那么我不需要确保dict不会变得太大。memoize装饰程序通常也需要执行缓存逐出吗 为什么这不是所有可以持有任意数量中间状态的装饰器的问题 使用functools中的lru\u缓存可以解决这个问题吗?您链接的记忆化的装饰器对内存使用没有限制,也不会执行缓存逐出。因此,是的,如果您继续使用不同的参数调用函数,您必须担心内存不足 funct
memoize
装饰器:
我是否需要担心内存不足和需要手动垃圾收集?例如,如果我有一个长期运行的Python进程,它会不断地进行记忆,那么我不需要确保dict
不会变得太大。memoize
装饰程序通常也需要执行缓存逐出吗
为什么这不是所有可以持有任意数量中间状态的装饰器的问题
使用
functools
中的lru\u缓存
可以解决这个问题吗?您链接的记忆化的
装饰器对内存使用没有限制,也不会执行缓存逐出。因此,是的,如果您继续使用不同的参数调用函数,您必须担心内存不足
functools.lru\u cache(n)
不会在缓存中存储超过n
个调用-这非常适合限制内存使用。带有弱引用的备忘录允许垃圾收集器时不时地回收对象。