What is the simplest way to detect if PHP is compiled with JIT and JIT is enabled from the running script?
Asked
Active
Viewed 1,201 times
3 Answers
5
You can query the opcache settings directly by calling opcache_get_status()
:
opcache_get_status()["jit"]["enabled"];
or perform a lookup in the php.ini
:
ini_get("opcache.jit")
which is an integer (returned as string) where the last digit states the status of the JIT:
0 - don't JIT
1 - minimal JIT (call standard VM handlers)
2 - selective VM handler inlining
3 - optimized JIT based on static type inference of individual function
4 - optimized JIT based on static type inference and call tree
5 - optimized JIT based on static type inference and inner procedure analyses
![](../../users/profiles/4934937.webp)
maio290
- 5,118
- 1
- 14
- 29
-
It seems it does not work - `var_dump(ini_get("opcache.jit"));` returns `string(4) "1205"` for with JIT and without JIT, tested using https://3v4l.org/Q366F – mvorisek Jun 30 '20 at 12:01
-
@mvorisek I've updated my answer. I guess the opcache_get_status() function is what you were looking for. – maio290 Jun 30 '20 at 12:23
-
1Thanks, the following works: `opcache_get_status()["jit"]['enabled'] ?? false` – mvorisek Jun 30 '20 at 12:32
1
opcache_get_status()
will not work when JIT is disabled and will throw Fatal error.
echo (function_exists('opcache_get_status')
&& opcache_get_status()['jit']['enabled']) ? 'JIT enabled' : 'JIT disabled';
We must have following settings for JIT in php.ini
file.
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1 //optional, for CLI interpreter
opcache.jit_buffer_size=32M //default is 0, with value 0 JIT doesn't work
opcache.jit=1235 //optional, default is "tracing" which is equal to 1254
![](../../users/profiles/7082164.webp)
Jsowa
- 4,188
- 4
- 23
- 35
1
php -i | grep "opcache"
checking:
opcache.enable => On => On
opcache.enable_cli => On => On
opcache.jit => tracing => tracing
![](../../users/profiles/10364336.webp)
Leo Yuee
- 11
- 2
-
1Please update your answer with some details about your code and how does it answers the question. – Cosmin Staicu Jan 08 '21 at 17:48