Re: [pcre-dev] JIT regression

Top Page
Delete this message
Author: ph10
Date:  
To: Pcre-dev@exim.org
CC: Zoltán Herczeg, ND
Subject: Re: [pcre-dev] JIT regression
On Tue, 28 May 2019, I wrote:

> > ./pcre2test -tm
> > PCRE2 version 10.34-RC1 2019-04-22
> >   re> /abcd/
> > data> \[012345678a]{2000}
> > Match time 0.1659 milliseconds
> > No match
> > data>
> >   re> /abcd/jit
> > data> \[012345678a]{2000}
> > Match time 0.0027 milliseconds
> > No match
>
> Thanks for posting that example. I've just noticed that an improvement
> may be possible in the interpreter


Experiments show that the limit on searching for a "must have" code unit
were rather low, especially for unanchored searches. I have increased
the limit for unanchored matches substantially, giving a big improvement
for your example:

$ ./pcre2test -tm zz
PCRE2 version 10.34-RC1 2019-04-22
/abcd/
\[0123456789a]{2000}
Match time 0.0002 milliseconds        The old value is 0.0477 on my box
No match


$ ./pcre2test -tm -jit zz
PCRE2 version 10.34-RC1 2019-04-22
/abcd/
\[0123456789a]{2000}
Match time 0.0185 milliseconds
No match

Even when memchr can't be used:

$ ./pcre2test -16 -tm zz
PCRE2 version 10.34-RC1 2019-04-22
/abcd/
\[0123456789a]{2000}
Match time 0.0067 milliseconds
No match

$ ./pcre2test -16 -jit -tm zz
PCRE2 version 10.34-RC1 2019-04-22
/abcd/
\[0123456789a]{2000}
Match time 0.0185 milliseconds
No match

However, it is certainly the case that one can fine-tune example to make
the figures better or worse.

Regards,
Philip

--
Philip Hazel