Зачем компилировать файл PHP?

мой друг недавно сказал мне: "чтобы оптимизировать ваш сайт, вы можете скомпилировать свои php-файлы" а я такой: "что?"

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

итог:

Что означает компиляция php? конвертировать их в exe-файлы? почему? быстрее?

5 ответов


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

для компиляции скриптов или запуска скомпилированных скриптов можно использовать следующие инструменты:


Если вы не после серьезной производительности, то компиляция PHP с использованием чего-то вроде HipHop Facebook, вероятно, немного чрезмерно.

Я бы просто установил / настроил альтернативный PHP-кэш (APC) на вашем компьютере, который будет кэшировать скомпилированный байт-код и должен дать вам мгновенное повышение производительности.


Facebook использует такие вещи. Их продукт хип-хоп, и это бесплатно.


идея компилятор, чтобы преобразовать код человека readble (с, РНР, Java и т. д.), в машиночитаемый код. Когда вы выполняете свои PHP-скрипты, они интерпретируются (почти встроенная компиляция), что означает, что они читаются строка за строкой, и код выполняется соответственно.

скомпилированный код, означает, что он скомпилирован в источнике, поэтому уже находится на машинном языке (или байтовом коде для языков VM, таких как Java), и поэтому серверу не нужно интерпретировать код каждый раз. Так будет быстрее.

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

поэтому он будет преобразован в машинный язык или байт-код (не exe, но эффективно ту же концепцию).


чем больше ваше приложение, тем больше смысла это имеет. PHP загружает всю вашу программу в память, а затем компилирует ее на лету: это означает, что ее нужно использовать. Поэтому, если вы предварительно компилируете, он должен пропустить этот шаг. Facebook делает что-то подобное. Перевести их php на C++ через то, что называется хип-хоп. Не совсем то же самое, но вы поняли.

Я сомневаюсь, что это покажет вам большую разницу в небольших приложениях.