Альтернативный движок PHP привлекает провайдеров веб-сервисов

21 ноябрь, 2014 - 12:25

Среди популярных сервисов Интернета наметилась тенденция миграции на открытый движок (runtime engine) PHP компании Facebook. Причиной тому является многократное увеличение скорости выполнения инструкций по сравнению со стандартным PHP-интерпретатором, широко используемым в Интернете.

Инженеры Facebook пришли к созданию HipHip Virtual Machine (HHVM) в поисках способов ускорения социального сервиса этой компании. Производительность стандартного PHP, разработанного в 1994 г., оставляла желать лучшего: инструкции программиста транслировались им в машинный код только когда вызывались пользователем, что замедляло работу. Поэтому была создана виртуальная машина, которая подобно JVM транслирует исходный текст программы в машинный байт-код непосредственно перед выполнением. Полученный код сохраняется в кэш-памяти, откуда его можно быстро извлечь при необходимости повторного использования.

В настоящее время HHVM обеспечивает большинство функций социальной сети Facebook и понемногу находит путь в другие веб-службы. WP Engine, один из крупнейших провайдеров хостинга сервисов WordPress для предприятий, недавно создал свою платформу нового поколения Mercury на основе HHVM. По данным этой компании, Mercury реагирует быстрее на 560%, чем традиционная версия на PHP. В настоящее время WP Engine тестирует Mercury в полном рабочем режиме.

Предоставляющая услуги облачного хранения данных Box уже применяет HHVM в своем основном приложении, которым пользуются свыше 27 млн человек. Компания начала присматриваться к HHVM пару лет назад, но тогда ее сдерживал большой объем работ, требующихся для портирования кода на новый движок.

Приоритетной задачей команды разработчиков HHVM с тех пор стало обеспечение полной совместимости с PHP, что в итоге заставило Box изменить свою позиции в отношении новой технологии. Благодаря этому шагу среднее ожидание отклика ее сервиса сократилось в три раза. Компания также отказалась от веб-сервера Apache: HHVM использует внутреннюю копию высокопроизводительного сервера Nginx.

Переход на HHVM всё же потребовал некоторой подготовки. Являясь JIT-компилятором, HHVM выходит на оптимальный уровень быстродействия лишь после того, как код вызывают несколько раз и кэш «прогревается». Инженеры Box изменили порядок внутренних операций своей системы, обеспечив короткий период прогрева перед использованием новой инстанции HHVM.