26 Jul
2010
26 Jul
'10
11:27 p.m.
Gregory P. Smith, 27.07.2010 07:40:
A max cache size of 100 was too small. I just increased it to 500 in the py3k branch along with implementing a random replacement cache overflow policy. It now randomly drops 20% of the compiled regular expression cache instead of simply dropping the entire cache on overflow.
With the regex_v8 benchmark, the better cache replacement policy sped it up ~7% while raising the cache size on top of that (likely meaning the cache was never overflowing) sped it up ~25%.
Random replacement without dropping everything at least means apps thrashing the cache degrade much more gracefully.
The same algorithm should be helpful in ElementTree's ElementPath module. Stefan