On Tue, Apr 18, 2017 at 10:09 AM, Zoltán Herczeg <hzmes...@freemail.hu> wrote:
>>>>I.e. no difference in v1 & v2 anymore. The log case though shows pcre1
>>>>being 2% faster than pcre2:
>
> I don't know the reason then, needs more investigation. Btw I have started to 
> improve the first character search optimization in JIT. It is still in 
> progress (corner cases), although you can try it now.

I just tested against pcre1 & pcre2 trunk now with -O3 on both, and v2
is now ~20% faster than v1. I bisected it and it's because of your
recent SSE2 JIT optimizations. Thanks a lot.

The grep case now:

         s/iter    basic extended    pcre1    fixed    pcre2
basic      2.07       --      -0%     -47%     -50%     -57%
extended   2.06       0%       --     -47%     -50%     -57%
pcre1      1.10      88%      87%       --      -6%     -19%
fixed      1.04      99%      99%       6%       --     -14%
pcre2     0.889     133%     132%      24%      17%       --

And log:

         s/iter extended    basic    pcre1    pcre2    fixed
extended   6.33       --      -0%     -16%     -17%     -18%
basic      6.33       0%       --     -16%     -17%     -18%
pcre1      5.29      20%      20%       --      -0%      -2%
pcre2      5.27      20%      20%       0%       --      -2%
fixed      5.17      22%      22%       2%       2%       --


>>...but wasn't allocating the stack for pcre2 like that, but only for
>>pcre1 (where I think it can't be avoided). Will do that & check how
>>that performs. Thanks again.
>
> The JIT stack should not affect performance, its purpose is extending the 
> memory available for JIT.

But doesn't that impact performance, or is the alternate case that the
pattern merely runs out and either errors out or falls back to a
slower non-JIT path? The relevant docs don't say, or maybe I'm missed
something.

Also, both stack_create & match_data_create optionally take
pcre2_general_context_create(), if I don't want to use my own custom
malloc/free is this something that's worth doing? The docs just say
you can do it, but don't suggest if it's worth it if you're not using
your own memory allocation.

-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to