phpjitphp-8

How to detect if PHP JIT is enabled


What is the simplest way to detect if PHP is compiled with JIT and JIT is enabled from the running script?


Solution

  • 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
    

    Source: https://wiki.php.net/rfc/jit#phpini_defaults