如何在Python中清除正则表达式缓存?
目前,编译正则表达式时,结果会被缓存,以便如果再次编译相同的正则表达式,则可以从缓存中检索,无需额外操作。此缓存最多支持 100 个条目。达到第 100 个条目后,缓存将被清除,必须执行新的编译。
缓存的目的是减少函数的平均调用时间。在缓存中保留更多信息并进行解析而不是清除它相关的开销会增加平均调用时间。_cache.clear() 调用将很快完成,即使缓存丢失,这也比维护缓存状态并在达到限制时从缓存中删除单个元素的开销更好。
在计算缓存效率时,需要考虑以下几点:
缓存命中时的平均调用时间(非常短)
缓存未命中时的平均调用时间(较长)
缓存命中的频率(相当不常见)
清除或修剪缓存时的调用时间(相当不常见)
当正则表达式缓存达到 _MAXCACHE 个条目时,使用 _cache.clear() 清除它。
广告