config PCRE2_JIT_ENABLED | |
bool | |
depends on PACKAGE_libpcre2 && (aarch64 || aarch64_be || arm || i386 || i686 || x86_64 || mips || mipsel || mips64 || mips64el || powerpc || powerpc64 || powerpcle || sparc) | |
default y if (arm || i686 || x86_64) | |
prompt "Enable JIT compiler support" | |
help | |
Enable JIT (Just-In-Time) compiler support. | |
Just-in-time compiling is a heavyweight optimization that can greatly | |
speed up pattern matching. However, it comes at the cost of extra | |
processing before the match is performed, so it is of most benefit when | |
the same pattern is going to be matched many times. This does not | |
necessarily mean many calls of a matching function; if the pattern is | |
not anchored, matching attempts may take place many times at various | |
positions in the subject, even for a single call. Therefore, if the | |
subject string is very long, it may still pay to use JIT even for | |
one-off matches. JIT support is available for all of the 8-bit, 16-bit | |
and 32-bit PCRE2 libraries and adds about 100KB to the resulting | |
libpcre2.so. JIT support applies only to the traditional Perl-compatible | |
matching function. It does not apply when the DFA matching function is | |
being used. | |
Enabling this option can give an about 10x performance increase on JIT | |
operations. It can be desireable for e.g. high performance Apache | |
mod_rewrite or HA-Proxy reqrep operations. | |
However, JIT should _only_ be enabled on architectures that are supported. | |
Enabling JIT on unsupported platforms will result in a compilation | |
failure. A list of supported architectures can be found here: | |
https://pcre.org/current/doc/html/pcre2jit.html#SEC2 |