Ускоритель PHP против компиляции Just in Time

из википедии:

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

Как раз вовремя Сборник:

JIT-компиляторы представляют собой гибридный подход, при котором трансляция происходит непрерывно, как и в интерпретаторах, но с кэшированием транслируемого кода для минимизации снижения производительности.

поэтому использование ускорителей PHP, таких как APC на PHP, имеет эквивалентные последствия для производительности с компиляцией PHP «Just-in-time» (при условии, что это возможно) ... на самом деле это одно и то же?


person user734027    schedule 09.05.2011    source источник


Ответы (1)


поэтому использование ускорителей PHP, таких как APC на PHP, имеет эквивалентные последствия для производительности с компиляцией PHP «Just-in-time» (при условии, что это возможно) ... на самом деле это одно и то же?

Та же концепция, другое исполнение.

Когда о JIT говорят в большинстве кругов, имеется в виду компиляция байт-кода виртуальной машины в собственный байт-код. Например, HHVM Facebook — это реализация PHP, в которой используется движок JIT.

Однако собственная виртуальная машина PHP не выполняет JIT для собственного байт-кода. На самом деле, он вообще не выполняет JIT в традиционном смысле. Хотя целые файлы компилируются в байт-код PHP по запросу, на самом деле это не JIT.

Будьте осторожны с термином «ускоритель PHP». Еще во времена PHP4 байт-код, созданный синтаксическим анализатором PHP, можно было немного оптимизировать для повышения производительности. Это не было необходимо с раннего PHP5. Единственная вещь, которую APC, Zend "Optimizer" и другие "ускорители" делают для увеличения производительности PHP, это кеширование байт-кода. Термин «ускоритель» больше не должен использоваться для устранения двусмысленности.

Если вы используете стандартный PHP, то вам нужен нужен кеш байт-кода, просто держитесь подальше от продуктов, которые говорят, что они пытаются оптимизировать байт-код PHP.

person Charles    schedule 09.05.2011
comment
Я знаю, что это старый пост, и, возможно, что-то изменилось, но оптимизатор Zend + действительно оптимизирует код. Цитата: Кроме того, он применяет несколько шаблонов оптимизации байт-кода, которые ускоряют выполнение кода. zend-dev/ZendOptimizerPlus - person XzKto; 22.02.2013
comment
Да, просто так получилось, что эти оптимизации имели гораздо, намного большее значение в PHP4. Теперь, когда он предложен для включения в основной дистрибутив, будет интересно посмотреть, оптимизация байт-кода не имеет значения. - person Charles; 22.02.2013
comment
В июне Facebook выпускает компилятор PHP Jit github.com/facebook/hiphop-php. - person Steven; 18.06.2013