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

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

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

Нижняя строка:

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

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

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

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

Ответ 5

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

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