PHP 8.4: Opcache: Изменения в INI, влияющие на включение JIT

Источник: «PHP 8.4: Opcache: INI changes on how JIT is enabled»
В PHP 8.0 была добавлена поддержка компиляции Just-In-Time. По умолчанию JIT отключена, и есть два переключателя, opcache.jit и opcache.jit_buffer_size, контролирующие режим основной функциональности PHP и размер буфера, разрешённый для использования JIT.

До версии PHP 8.4 значения по умолчанию в INI для PHP были следующими:

opcache.jit=tracing
opcache.jit_buffer_size=0

JIT включается установкой INI-значения opcache.jit_buffer_size, что не так интуитивно понятно, поскольку опция opcache.jit также принимает значение opcache.jit=disable.

 opcache.jit=tracing
-opcache.jit_buffer_size=0
+opcache.jit_buffer_size=64M

В PHP 8.4 значения по умолчанию для этих двух опций конфигурации изменены следующим образом. JIT по прежнему по умолчанию отключён в PHP 8.4. Единственное отличие заключается в том, что значения по умолчанию для INI-значений изменились.

-opcache.jit=tracing
+opcache.jit=disable

-opcache.jit_buffer_size=0
+opcache.jit_buffer_size=64M

Обратите внимание, что даже при изменении значения по умолчанию JIT по умолчанию отключён.

Влияние на обратную совместимость

Это значение по умолчанию изменено, но JIT по прежнему отключён по умолчанию. Приложения, не изменяющие значения конфигурации opcache.jit* по умолчанию, не получат никаких последствий.

PHP-приложениям, которые включали JIT исключительно с помощью значения opcache.jit_buffer_size, необходимо включить JIT с opcache.jit=tracing, поскольку значение opcache.jit по умолчанию изменилось с tracing на disable в PHP 8.4.

 ; Включение JIT, и установка размера буфера в 128МБ.
+opcache.jit=tracing
opcache.jit_buffer_size=128M

Дополнительные материалы

Предыдущая Статья

PHP 8.4: Тип констант PHP_ZTS и PHP_DEBUG изменён с int на bool

Следующая Статья

PHP 8.4: round() — неправильные режимы вызывают исключения