PHP-ускоритель против компиляции Just in Time - PullRequest
5 голосов
/ 10 мая 2011

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

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

Как раз вовремя Компиляция:

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

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

1 Ответ

5 голосов
/ 10 мая 2011

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

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

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

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

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

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

...