如何清除Python中的正则表达式缓存?

当前,在编译正则表达式时,将对结果进行缓存,这样,如果再次编译相同的正则表达式,则可以从缓存中检索它,而无需进行任何额外的工作。该缓存最多支持100个条目。一旦达到第100个条目,就将清除缓存,并且必须进行新的编译。

缓存的目的是减少函数的平均调用时间。与在_cache中保存更多信息并解析而不是清除它相关的开销会增加平均调用时间。_cache.clear()调用将快速完成,即使丢失了缓存,这也比保持缓存状态和达到限制时要从缓存中删除单个元素的开销要好。

在计算缓存效率时,需要请看以下几点:

  • 缓存命中的平均呼叫时间(很短)

  • 缓存未命中的平均呼叫时间(更长)

  • 高速缓存命中的频率(非常罕见)

  • 清除或修剪缓存时的通话时间(非常罕见)

当正则表达式缓存达到条目的_MAXCACHE时,将使用_cache.clear()清除正则表达式缓存。 


猜你喜欢