Hi Frederic,

I just realized that results on that page are two years old. So I updated the 
engines to their most recent versions and uploaded new results. These results 
are overall better for all engines (partly because of a newer gcc). The JIT is 
also improved overall, e.g. the 3rd starting from the last pattern was 
decreased to 27 ms from 190 ms.

Regards,
Zoltan

"Zoltán Herczeg" <[email protected]> írta:
>Hi Frederic,
>
>thank you for measuring PCRE on PPC. The results are quite interesting.
>
>It seems to me that those patterns are slower whose require heavy 
>backtracking. I mean where fast-forward (skipping) algorithms cannot be used 
>(or they match too frequently). The /[a-zA-Z]+ing/ is a good example for that. 
>Backtracking engines (PCRE, Oniguruma) suffers much more on PPC than those 
>that read input once (TRE, RE2). I suspect branch prediction on x86 is better, 
>but only statistics profilers can prove that. Oprofile is available 
>everywhere, and can profile JIT code. That part is developed by IBM :)
>
>http://oprofile.sourceforge.net/doc/devel/index.html
>
>It needs some extra coding though. If you are interested to work on that, I 
>can help.
>
>Btw the Tom.{10,25}river|river.{10,25}Tom pattern is twice as fast on PPC with 
>JIT if I understand the numbers correctly.
>
>Regards,
>Zoltan
>
>Frederic Bonnard <[email protected]> írta:
>>Thanks Zoltan for the quick reply.
>>- Ok I think I got it for SSE2.
>>- For SIMD instructions, I fear I don't have currently the knowledge for that 
>>but
>>would be willing to learn/help.
>>- A good start would be that 3rd point, about current code and performance
>>  status on PPC vs x86.
>>  I reused http://sljit.sourceforge.net/regex_perf.html, I hope it is 
>> relevant.
>>  pcre directory has been updated to use latest 8.37 instead of 8.32.
>>  My VMs were :
>>  * x86-64 4x2.3GHz 4G memory on a x86-64 host
>>  * ppc64el 4x3GHz 4G memory on a P8 host
>>  * ppc64 4x3GHz 4G memory on a P8 host
>>  All were installed with Ubuntu 14.04 LTS.
>>  Note on Ubuntu for ppc64, default is to have binary in 32b running on a 64b
>>  kernel, thus the binary 'runtest' is 32b. Maybe I'd need to try with 64b
>>  binary.
>>  Here is attached the results for those 3 environments. The goal is not to
>>  find who's the best but rather find any odd behaviour. Also let's focus on
>>  pcre/pcre-jit .
>>  Any comment from experts eyes welcomed.
>>  On my side, I see very comparable results between ppc64/pcc64el so no major
>>  issue on ppc64el. Now, between x86 and ppc64el, the results for the latter
>>  seem overall weaker, all the more that the x86 VM has lower freq.
>>  Results would need maybe more repetition ? and percentage to compare but I
>>  already see some x2 or x3 time slower results for pcre-jit :
>>  .{0,3}(Tom|Sawyer|Huckleberry|Finn)
>>  [a-zA-Z]+ing
>>  ^[a-zA-Z]{0,4}ing[^a-zA-Z]
>>  [a-zA-Z]+ing$
>>  ^[a-zA-Z ]{5,}$
>>  ^.{16,20}$
>>  "[^"]{0,30}[?!\.]"
>>  Tom.{10,25}river|river.{10,25}Tom
>>
>>  Any special treatment for these that could make code generated on power 
>> weaker ?
>>
>>  Fred
>>
>>-- 
>>## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 
>
>
>-- 
>## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 


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

Reply via email to