如何在Python中清除正则表达式缓存?
目前,在编译正则表达式时,会将结果缓存起来,这样如果再次编译相同的正则表达式,就可以从缓存中获取而不需要额外的工作。该缓存支持多达100个条目。一旦达到第100个条目,缓存就会被清除,并且必须进行新的编译。
缓存的目标是减少函数的平均调用时间。在 _cache 中保留更多信息并进行匹配而不是清除它将增加平均调用时间的开销。_cache.clear() 调用将迅速完成,即使缓存丢失,这也比维护缓存状态并有删除缓存中单个元素的开销更可取。
计算缓存效率时需要考虑以下几个因素:
- 缓存命中的平均调用时间(非常短)
-
缓存未命中的平均调用时间(更长)
-
缓存命中的频率(相对较少)
-
清除或修剪缓存时的调用时间(相对较少)
当正则表达式缓存达到条目的 _MAXCACHE 时,可以使用 _cache.clear() 清除缓存。
更多Python相关文章,请阅读:Python 教程
极客教程