Precompile pagespecs, about 10% overall speedup
authorJoey Hess <joey@kodama.kitenet.net>
Fri, 21 Mar 2008 10:36:07 +0000 (06:36 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Fri, 21 Mar 2008 10:36:07 +0000 (06:36 -0400)
commitbf7360347ea3f7a24345004a6c2143d15d3d2e92
tree499ff6c0d27a59ea1ecf2e3914726e04fc4c2afd
parentf40fec811d49e3ae14f6042ef8c304979a486df2
Precompile pagespecs, about 10% overall speedup

About 12% of ikiwiki runtime was spent in pagespec_match. It was evaling
the same pagespec code over and over again. This changes pagespec_translate
to return memoized, precompiled functions that can be called to match against
a given pagespec.

This also allows getting rid of the weird variable scoping trick that had
to be in effect for pagespec_translate to be called -- the variables are
now just fed into the function it returns.

On my laptop, this drops build time for the docwiki from about 60 to 50
seconds.
IkiWiki.pm
debian/changelog