monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] nvm.experiment.pcre - boost::regex replacement - ready


From: Zack Weinberg
Subject: [Monotone-devel] nvm.experiment.pcre - boost::regex replacement - ready for inclusion, + 2 subbranches
Date: Wed, 3 Jan 2007 18:33:28 -0800

I'm pleased to opine that with the stuff I just pushed,
nvm.experiment.pcre is ready for inclusion.  To recap, PCRE is a
regular expression library suitable to replace our use of
boost::regex, which is six times larger and significantly slower.  [I
tested this by cranking up the iteration count on the
packet.roundabout unit test to 10000, then running that unit test 100
times.  Mean wall time with boost::regex, 13.91s; mean with PCRE,
12.80s; t = 12.93, p < 0.05.]

In addition, there are two subbranches of nvm.experiment.pcre on which
I would appreciate comments  .precomp adds precompilation of regexes:
that is, regexes that are constant at compile time of Monotone can be
compiled to the PCRE internal representation then.  This gives an
additional small, not-quite-significant speedup on the above test
(mean 12.70, t = 1.14, p ~= 0.2).  I am not exactly proud of pcrepc.cc
and would appreciate suggestions on how to do it better, especially
the parsing part.

.ignored uses the new functionality to replace the Lua-ful ignore
handling, which has been reported as a bottleneck for some operations.
Again, I'm not exactly proud of my file I/O and would appreciate
suggestions on how to do it better.  I don't consider this branch even
close to done; if we're going to mess with ignore handling, it should
be messed with quite a bit more.  See the comments above
initialize_ignore_set in restrictions.cc.

zw




reply via email to

[Prev in Thread] Current Thread [Next in Thread]