- PVSM.RU - https://www.pvsm.ru -
Компания Facebook продолжает работу по повышению производительности кода PHP. В 2010 году они выпустили компилятор HipHop (HPHPc), который транслировал PHP в C++, жертвуя некоторыми редко используемыми функциями PHP вроде eval()
, но повышая производительность.
С активной аудиторией в 1,1 млрд человек, Facebook крайне заинтересован в увеличении производительности веб-приложений. Поскольку многие программисты хорошо знакомы с PHP, компания решила не отказываться от этого «медленного» языка, а постараться максимально оптимизировать его. Кстати, так же делает и «Вконтакте» с недавно представленной технологией kPHP [1].
Впрочем, прежний подход по трансляции кода PHP в C++ пришлось оставить. Вместо этого выпущены виртуальная машина, окружение и JIT-компилятор для PHP под названием HipHop VM for PHP [2] или просто HHVM. Здесь речь идёт о повышении производительности в пять-девять раз.
В мае серверы Facebook почти полностью перешли с HPHPc на HHVM. На Github выложен исходный код [3] виртуальной машины и уже готовые собранные пакеты [4] для Ubuntu 12.04, Debian 7 (wheezy) и Centos 6.4. Скоро обещают добавить пакет для FreeBSD 9.
По словам [5] представителя Facebook, который недавно выступал на конференции O'Reilly Open Source Conference (OSCON), для стандартного веб-сайта, например, на
«Если вы возьмёте какой-то код PHP и запустите его на HipHop, то CPU не будет ограничивающим фактором производительности, — говорит Джоэл Побар (Joel Pobar), менеджер по разработке Facebook. — Скорее вы увидите, что система тратит больше времени на запросы к базе данных или общение с memcache».
HHVM работает по образцу JVM (Java Virtual Machine): JIT-компилятор транслирует исходный код в машинные коды, когда это нужно, и позволяет учитывать различные факторы при генерации машинного кода. Например, если там вызов к базе данных MySQL, то JIT-компилятор посмотрит, какой тип данных вызывается, и сгенерирует соответствующий код на лету.
Автор: alizar
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/39624
Ссылки в тексте:
[1] kPHP: http://habrahabr.ru/post/187214/
[2] HipHop VM for PHP: http://www.hhvm.com/
[3] исходный код: https://github.com/facebook/hiphop-php
[4] пакеты: https://github.com/facebook/hiphop-php/wiki#installing-pre-built-packages-for-hhvm
[5] словам: http://news.techworld.com/applications/3461086/facebook-invents-a-php-virtual-machine/
[6] хостинге: https://www.reg.ru/?rlink=reflink-717
[7] Источник: http://habrahabr.ru/post/188056/
Нажмите здесь для печати.