Выбор ответа Senior PHP 8.x: enum, readonly, match обновлено

JIT в PHP 8

Вопрос

Когда JIT в PHP 8 даёт заметный прирост?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: На CPU-нагруженном коде, а не на ожидании базы. JIT работает поверх OPcache (без него не включается) и компилирует горячий байткод в машинный код.

Варианты ответа

  1. Всегда ускоряет веб-приложения в несколько раз
  2. На CPU-нагруженном коде, а не на ожидании базыправильный ответ
  3. Только при выключенном OPcache, иначе они конфликтуют
  4. Только для кода с declare(strict_types=1)

Разбор

JIT работает поверх OPcache (без него не включается) и компилирует горячий байткод в машинный код. Веб-запрос обычно ждёт базу, сеть и диск, а не CPU, поэтому выигрыш скромный. Заметный эффект на вычислительных задачах. Строгая типизация на JIT не влияет. В PHP 8.4 JIT получил новую реализацию на основе IR.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме