|
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
|