python - 使用 functools.lru_cache 时如何查看当前缓存大小?
问题描述
我正在对functools.lru_cache
装饰器包装的某个方法进行性能/内存分析。我想看看如何检查我的缓存的当前大小,而不用做一些疯狂的检查魔术来访问底层缓存。
有谁知道如何查看装饰的方法的当前缓存大小functools.lru_cache
?
解决方案
在文档中四处挖掘表明答案是调用.cache_info()
该方法。
为了帮助测量缓存的有效性并调整 maxsize 参数,包装函数使用 cache_info() 函数进行检测,该函数返回一个命名元组,显示命中、未命中、最大大小和 currsize。在多线程环境中,命中和未命中是近似的。