[pcre-dev] I'm adding PCRE v2 support to Git. It's a bit slo…

Top Page
Delete this message
Author: Ævar Arnfjörð Bjarmason
Date:  
To: pcre-dev
Subject: [pcre-dev] I'm adding PCRE v2 support to Git. It's a bit slower than v1
I just submitted a patch series to the git mailing list to add support
for PCRE v2, Git has already had support for v1 for some years:

    https://github.com/git/git/compare/master...avar:avar/pcre2


As noted in the tip of that series:

    https://github.com/git/git/commit/e6d3b6a27e8cd99738c2945b8920ef99e1477425


I did some basic performance benchmarks between v1 and v2 of PCRE.
Depending on whether we use git-grep or git-log v2 is 1% to 10% slower
than v1 when both use JIT.

I'd love to get some feedback on whether I'm doing something obviously
dumb with the v2 API that I've missed:

    https://github.com/git/git/commit/e6d3b6a27e8cd99738c2945b8920ef99e1477425#diff-4bd0ab5088433b7a531fbdac96e6c14eR424


And also, searching on that page for "follow-up projects" show some
areas where I've identified git's PCRE support doing potentially
stupid things with PCRE, that could be replaced by offloading more
work on PCRE. E.g. we implement -w by manually checking for word
boundaries, instead of prefixing & suffixing the pattern with "\b".

Any more tips like that would be welcome, and also some tips about
e.g. in what cases the JIT overhead becomes not worth it, and when it
does.