Почему не включается JIT?
PHP 8.3
В php.ini такие настройки:
opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=1024 opcache.interned_strings_buffer=256 opcache.max_accelerated_files=40000 opcache.max_wasted_percentage=10 opcache.use_cwd=0 opcache.validate_timestamps=0 opcache.revalidate_freq=0 opcache.revalidate_path=0 opcache.save_comments=1 opcache.enable_file_override=1 opcache.optimization_level=0x7FFFBFFF opcache.blacklist_filename=/etc/php/opcache.bl opcache.preload_user=www-data opcache.jit_buffer_size=256M opcache.jit=tracing |
opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=1024 opcache.interned_strings_buffer=256 opcache.max_accelerated_files=40000 opcache.max_wasted_percentage=10 opcache.use_cwd=0 opcache.validate_timestamps=0 opcache.revalidate_freq=0 opcache.revalidate_path=0 opcache.save_comments=1 opcache.enable_file_override=1 opcache.optimization_level=0x7FFFBFFF opcache.blacklist_filename=/etc/php/opcache.bl opcache.preload_user=www-data opcache.jit_buffer_size=256M opcache.jit=tracing
Но при проверке:
php -i | grep "opcache"
Выдает:
opcache.jit => no value => no value opcache.jit_buffer_size => 256M => 256M |
opcache.jit => no value => no value opcache.jit_buffer_size => 256M => 256M
Как так-то?
Дополнительно:
В каком php.ini?
Для начала можно посмотреть php -i | grep "php.ini"
Проблема решилась тем, что в /etc/php/8.3/mods-available/opcache.iniнужно изменить opcache.jit=offна opcache.jit=tracing
Ну и перезапустить PHP.
Всем спасибо
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для начала, давайте разберемся, что такое JIT. JIT (Just-In-Time) компиляция - это метод оптимизации, который позволяет компилятору выполнять код во время выполнения программы, а не до ее запуска. Это позволяет улучшить производительность программы за счет оптимизации кода на лету.
Если у вас возникают проблемы с включением JIT, то есть несколько вариантов, почему это может происходить:
1. Версия PHP: Убедитесь, что ваша версия PHP поддерживает JIT компиляцию. JIT была впервые введена в PHP 8.0, поэтому если у вас установлена более ранняя версия, JIT не будет работать.
2. Конфигурация PHP: Проверьте файл конфигурации PHP (обычно php.ini) и убедитесь, что параметр opcache.jit=1235 включен. Этот параметр отвечает за включение JIT компиляции.
3. Настройки опкэша: Убедитесь, что ваш опкэш настроен правильно и не блокирует JIT компиляцию. Некоторые опции опкэша могут конфликтовать с JIT, поэтому стоит проверить их настройки.
4. Проблемы с зависимостями: Иногда проблема может быть связана с зависимостями или библиотеками, которые могут мешать работе JIT. Убедитесь, что все необходимые зависимости установлены и обновлены.
Если после всех этих шагов JIT все еще не включается, то стоит обратиться к официальной документации PHP или обратиться за помощью на специализированные форумы или сообщества разработчиков.