Hi,

JIT is typically used by server applications such as NGNIX webserver, Suricata 
Intrusion Detection System, ModSecurity firewall, etc. and it seems they are 
happy with it. Some Korean guys made a paper about integrating JIT into Snort: 
http://kiise.or.kr/e_journal/2013/4/CST/pdf/01.pdf They also have the same 
conclusion as yours: JIT compilation has a considerable overhead, but since 
server applications are rarely restarted, this is not an issue. You can also 
use a deferred compilation in a second thread if server startup time is 
important (and use the interpreter if a pattern is not yet compiled).

The other typical use case is searching a single pattern in a huge input, such 
as GNU grep, ag (silver searcher), etc.

In short JIT only helps if you compile a pattern once, and use it several 
times. It is inefficient for searching a pattern once in a small string like 
checking a version string.

I don't understand this: "pattern is reused many times in a row in VM, without 
use of other
patterns between". Why other patterns can not be used?

Regards,
Zoltan

ND <nad...@mail.ru> írta:
>>
Good day!>
>
>
As I trying to say some time ago, PCRE-JIT in most applications is  >
useless. It only slowing matching process.>
>
Consider timings. In most real situations JIT compile+run time greatly  >
exceeds interpreter compile+run time.>
Taking this into account there are very few circumstances when JIT brings  >
benefits to user:>
- JIT compile+run time is less then interpreter run time (I think that  >
number of this cases is about a zero);>
- pattern is reused many times in a row in VM, without use of other  >
patterns between (IMHO number of this cases is also about a zero).>
>
So JIT without ability to use JIT-precompiled patterns have a ve-e-e-ry  >
limited applicability.>
May be I'm err. Correct me please if so.>
>
I propose add to JIT ability of saving JIT-compiled data. So full  >
precompiled pattern can be used by main application. This eliminates a JIT  >
compile time costs and allow to use a speed benefits of JIT in most cases.>
I understand than compiled JIT-data saved on one platform probably can't  >
be used on other platforms. But it can be used by application then starts  >
on one platform with great effectiveness.>
>
>
I take this opportunity to thank Phillip and Zoltan for large efforts and  >
great product.>
Best regards.>
>
-- >
## 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