Новости IT, хостинга
  Android, Apple, Facebook, Google, Linux, Microsoft, Samsung, Twitter, Интернет, Россия, браузеры, обновление ПО, онлайн-сервисы, операционные системы, планшеты, рынок ИТ, сделки, смартфоны, социальные сети, уязвимости  
  новостей: 10385
  комментариев: 3198

Facebook анонсировал виртуальную машину HipHop и JIT-компилятор для языка PHP


Компания Facebook открыла результаты работы группы, занимающейся экспериментами в области динамической трансляции кода на языке PHP в машинные инструкции. Разработка позиционируется как продолжение развития проекта HipHop, в рамках которого в прошлом году был разработан транслятор hphpc для преобразования PHP-скриптов в представление на языке C++, пригодное для дальнейшей компиляции при помощи g++ в машинные инструкции. В результате проведённой работы была создана виртуальная машина hhvm (HipHop Virtual Machine), которая за счет JIT-компиляции позволила обеспечить достойный уровень производительности при выполнении PHP-кода.

Hhvm позволяет выполнять практически любой PHP-код, используя в процессе JIT-компиляции динамические оптимизации, учитывающие особенности выполнения скрипта. Статическая компиляция при помощи hphpc вносила существенные ограничения на оформление кода и ограничивалась лишь статическими методами анализа при выработке плана оптимизации. При динамической трансляции в hhvm задействована возможность определения типов данных в процессе выполнения кода и генерации на лету более эффективных наборов машинных инструкций, оптимизированных специально для заданных типов.

Перед выполнением PHP-скрипты преобразуются, с задействованием наработок hphpc, в специальное промежуточное абстрактное представление AST (Abstract Syntax Tree), которое затем транслируется в байткод HHBC (HipHop bytecode), который в дальнейшем выполняется внутри высокоуровневой виртуальной машины. Виртуальная машина поддерживает два режима работы - интерпретация байткода и трансляция на лету в машинные инструкции x64. Оба режима могут бесшовно работать бок о бок, но в качестве перспективного направления развивается режим трансляции.

В настоящее время hhvm уже используется для обеспечения работы сервисов Facebook в качестве замены поддерживаемого силами компании высокопроизводительного PHP-интерпретатора hphpi, обеспечивая прирост производительности в среднем в 1.6 раз, при тестировании на реальных приложениях, используемых в Facebook. В дальнейшем планируется задействование hhvm для выполнения всего кода Facebook, написанного на языке PHP. Скорость работы режима трансляции hhvm приближается к производительности программ, скомпилированных при помощи hphpc (скорость режима интерпретации оценивается коэффициентом 0.2 от скорости скомпилированных программ, а режима трансляции - 0.6).

В настоящее время степень завершённости проекта оценивается в 90% Из планов на будущее отмечается определение формата для сохранения байткода на диске для сокращения времени запуска и сохранении накопленной в процессе выполнения статистики. Полностью стабилизировать работу динамической трансляции и довести уровень производительности до скомпилированных в hphpc программ планируется в течение нескольких месяцев. Код открыт под лицензией PHP и доступен для загрузки на странице проекта в GitHub.


Источник: opennet.ru

  13 декабря 2011 1336
Версия для печати

← предыдущая новость следующая новость →

Мой комментарий
Ваше имя*:
Email:
Комментарий*:
Зарегистрироваться автоматически: Вы будете зарегистрированы на сайте автоматически при добавлении комментария. Обязательно заполните поле Email для этого.
Сумма чисел 7 и 11*:            


Хостеры (2472)
HostDB (35)
Софт (2640)
Железо (993)
Интернет (1435)
Статистика и аналитика (3324)




Отправить сообщение администратору

Сумма чисел 27 и 4*:


Яндекс цитирования
сообщить о неточности