Image

База знаний → Увеличение скорости работы сайта с помощью настроек php 8

PHP 8 обладает новыми возможностями для оптимизации производительности и новую функцию, увеличивающую скорость работы скриптов под названием JIT (Just In Time) компиляция.

Чистые интерпретируемые языки программирования не имеют этапа компиляции и напрямую выполняют код на виртуальной машине. Большинство интерпретируемых языков, включая PHP, фактически имеют облегченный этап компиляции для повышения производительности.

С другой стороны, языки программирования с опережающей компиляцией (AOT) требуют, чтобы код был скомпилирован перед его запуском.

Компиляция JIT (Just In Time) «точно в срок» — это гибридная модель интерпретатора и компиляции с опережением времени, при которой часть или весь код компилируется, часто во время выполнения, без необходимости разработчика компилировать его вручную.

Управление данной опцией осуществляется в модуле opcache. Данный модуль предназначен для ускорения работы скриптов, а включение JIT еще более ускоряет выполнение скриптов - т.е. дает возможность двойного ускорения.

Сравнительные график увеличения скорости.

Мы в своем примере будем использовать php 8.3.

1. Проверим наличие модуля

php8.3 -m | grep OPcache

В выводе он может отобразиться 2 раза в общем разделе и разделе Zend модулей. Это означает, что он включен.

1.1 Если он выключен, включим

В нашем примере мы используем Debian 12 и у Вас пути могут отличаться.

nano /etc/php/8.3/fpm/conf.d/10-opcache.ini
; configuration for php opcache module
; priority=10
opcache.enable=1
opcache.revalidate_freq=0
opcache.validate_timestamps=1
opcache.max_accelerated_files=10000
opcache.memory_consumption=192
opcache.max_wasted_percentage=10
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1
zend_extension=opcache.so
opcache.jit=on

1.2 Включим модуль в настройках php

nano /etc/php/8.3/fpm/php.ini

Добавим в самый конец строки конфигурации:

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.jit_buffer_size=256M
opcache.jit=1235

1.3 Перезапустим fpm

service php8.3-fpm restart
service php8.3-fpm status

1.4 Снова проверим наличие модуля

php8.3 -m | grep OPcache

1.5 Проверка с помощью скрипта

Создадим php файл следующего содержания

touch info.php
nano info.php
<?php
phpinfo();
?>

Откройте скрипт через браузер http[s]://domain.tld/info.php и используя поиск Ctrl + f по слову opcache найдите параметры настроек.

Данные строки говорят о том, что модуль OPcache и надстройка JIT включены.





Нет комментариев