В завершение темы компилирования 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 - мне будет приятно.