Почему не включается JIT?

Ссылка скопирована
PHP
1 ответ

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?

  • Ипатьев, В обоих fpm, cli
  • Ну во-первых, непонятно, при чем здесь fpm, а во-вторых, нужен не абы какой "cli", а тот конкретный, который используется при запуске php -i | grep "opcache"
    Для начала можно посмотреть php -i | grep "php.ini"
  • Проблема решилась тем, что в /etc/php/8.3/mods-available/opcache.iniнужно изменить opcache.jit=offна opcache.jit=tracing

    Ну и перезапустить PHP.

    Всем спасибо

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Для начала, давайте разберемся, что такое 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 или обратиться за помощью на специализированные форумы или сообщества разработчиков.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно