Подписка

Компиляция PHP приложений - Phc и Phalanger

В завершение темы компилирования PHP приложений с целью увеличения производительности, рассмотрим еще два компилятора: Phc и Phalanger.

Phc

Phc один из самых первых PHP компиляторов, разработка началась в 2007 году и на сегодняшний день добралась до версии 0.3. Компилятор имеет довольно широкий спектр возможностей и поддержку плагинов.

Как по мне, самая вкусная из поддерживаемых функций - конвертирование PHP кода в XML и обратно. Сразу в голову приходит юзкейс - приложение, в котором при помощи веб-интерфейса задается некоторая логика (например, формируются условия отчета), полученная структура сохраняется в XML, который после компилируется в PHP.

Конечно же можно напрямую генерировать php код и писать его в файл, но согласитесь, xml как промежуточный формат, намного привлекательней с точки зрения архитектуры.

Также Phc умеет компилировать отдельные PHP файлы в исполняемые, а веб-приложения в расширения. Последняя функция правда все ещё в экспериментальном режиме.

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

Ещё одна ложка дегтя - процесс установки, чтобы Phc заработал, нужно перекомпилировать PHP c флагом --enable-embed. Хотя если вы серьёзно настроены, перекомпиляция не преграда.

Phalanger

Phalanger - компилятор, позволяющий компилировать PHP код в .NET, а точнее в MSIL (Microsoft Intermediate Language) - байткод, который используется .NET'ом.

Думаю физиономия Роуэна Аткинсона хорошо иллюстрирует реакцию большинства программистов (и мою в том числе) на фразу "компилировать PHP код в .NET", но тем не менее, компилятор цветет и пахнет. Разработка началась в 2006 году, текущая версия носит гордый номер 3.0 и включает много (наверное интересных) возможностей:

  • использование в PHP .NET библиотек и наоборот
  • совместные пространства имен
  • использование в PHP объектов .NET
  • конечно же компиляция в исполняемый код

Работает Phalanger только на Windows.

Не знаю как вас, а меня не очень прельщает использование компилятора, конвертирующего PHP код в .NET и работающего только в Windows.

Подведем итог

Из трех рассмотренных компиляторов, мне больше всего пришелся по вкусу HipHop, потому что он не только компилирует код в С++ или исходный, но и делает из него веб-сервер, который, как показали эксперименты, довольно хорошо справляется с высокими нагрузками. А посмотрев на аналоги стало понятно, почему разработчики FB решили его разработать.

В тему:

Если пост понравился - нажмите на гугловский +1 - мне будет приятно.

@kkooler

@kkooler

Занимаюсь разработкой высоконагруженных проектов и распределенных систем на PHP.
В свободное время разрабатываю нано-проекты:

Следить за блогом

RSS канал Twitter