Зачем компилировать файл PHP? - PullRequest
11 голосов
/ 05 мая 2011

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

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

Итог:

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

Ответы [ 5 ]

12 голосов
/ 05 мая 2011

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

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

6 голосов
/ 05 мая 2011

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

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

2 голосов
/ 05 мая 2011

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

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

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

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

2 голосов
/ 05 мая 2011

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

1 голос
/ 05 мая 2011

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

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

...