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


_______________________________________________
Monotone-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/monotone-devel

Reply via email to