PHP Profi

HHVM vs PHP 7: грядёт конкуренция Перевод

Несколько лет назад разработчики из Facebook отважились перестроить самую населённую соцсеть в мире, стараясь поддержать приемлемый уровень производительности. PHP был подзадорен этим десять лет назад, когда Facebook начал набирать обороты и захватывать целевую аудиторию.

Языки программирования с динамической типизацией представляют беспрецедентные возможности для разработчиков facebook для того, чтобы сделать или переделать сайт. А Марк Цукерберг ставит их в "The Hacker Way". Но в итоге они перестают развиваться с такой скорострельностью, поддавшись интенсивной нагрузке миллионов пользователей, посещающих сайт каждую минуту.

Тогда они изобретают HipHop, инструмент, конвертирующий php-скрипт в С++, предварительно компилирующийся и исполняемый на веб-серверах. И это единственное повышение мощности сервера, помогающее увеличить трафик от 500 до 600 процентов. Простыми бизнес-терминами, Facebook сохранил стоимость сервера в пять-шесть раз, благодаря изменению способа запуска кода.

Тем не менее, HipHop-бит не может длиться долго, и Facebook'у нужен ещё один технологический прорыв для разделения трафика. В конце концов, команда разработала виртуальную машину HipHop (HHVM) - систему, которая использует Just-In-Time (JIT) компиляцию для преобразования php кода в машинный язык, чтобы создать взаимосвязь между кодом PHP и базовым железом, запускающим этот код.

В итоге, виртуальная машина стала доступна для мира WordPress в качестве open source исполнения движка для PHP, обещающая аналогичные улучшения производительности по сравнению с традиционными движками PHP, Zend.

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

Улучшение производительности

Искусство программирования меняется стремительно, бизнес-организациям необходимо охватывать пользователей мобильных устройств, а это более высокая стоимость проектов. В таком контексте PHP 7 представит ряд улучшений исполнения движка, предложит нативное локальное хранилище и снизит потребление памяти.

Эти преимущества особенно хороши для мобильных устройств с их ограниченными возможностями просмотра веб-страниц. Следующая версия PHP поддерживает также и идею зелёной планеты — возможность обрабатывать больше трафика с теми же ресурсами сервера.

Zeev Suraski, соучредитель Zend Technologies, считает HHVM прямым конкурентом для Zend и демонстрирует, насколько версия следующего поколения PHP развита в плане улучшение производительности.

Спекуляция движка JIT

Возможность реализации JIT, выполняемая на Zend - основная мотивация для развития php следующего поколения. Это возможность динамической компиляции zend-opcodes для родных машинных кодов, ключевой принцип управления производительностью в hhvm.

Дела обстоят так, что PHP7 находится на одном уровне с HHVM без возможности JIT - компиляции, как характерной особенности, встроенной в zend. Однако php7 по сути многократно поддерживает лучшую миграцию с jit и обещает улучшение производительности в ближайшие годы.

Спекуляция асинхронного программирования

Php 7 разработан таким образом, что облегчает одновременное выполнение асинхронных задач. Эта возможность позволит в будущих итерациях php поддержку асинхронного программирования и таких задач, как доступ к базе данных сети, таймеры, выполнение мероприятий связанных с операцией ввода-вывода в одном цикле php.

Так, язык facebook hack для hhvm уже поддерживает асинхронное программирование. Разработчики ядра php видят такую опцию возможной в следующих итерациях php7. Эта статья охватывает широкий спектр ожидаемых синтаксических изменений для php7.

Так же и поддержка автономной многопоточности, в дальнейшем это позволит серверам на php обрабатывать одновременные запросы из одного пула памяти.

Сравнение эффективности

В следующем бенчмарке результаты сравнения производительности различных версий php и hhvm через разные cms:

Результаты теста демонстрируют существенное повышение производительности php7 по сравнению с предыдущими версиями, сокращение разрыва между php и hhvm. Запущенный для wordpress 4.1.1, PHP7 позволяет системе выполнять в два раза больше запросов в секунду по сравнению с php 5.6 последней стабильной версии.

Тесты, проведенные на Drupal CMS 8, PHP 7 выигрывает вчистую у HHVM с возможностью обрабатывать более 37 процентов дополнительных запросов сервера в секунду. По сравнению с PHP 5.4, 5.5 и 5.6, дающих условия минимальной производительности для последующих итераций, PHP 7 делает более 80 процентов дополнительных запросов в секунду.

Это тесты также показывают, что PHP 7, выполненный для Zend (with Zend execution) более эффективен, чем пакет HHVM для CMS WordPress, включая и Drupal Тесты, проведенные на Ubuntu Utopic 5.5.12, сравнили производительность PHP и HHVM в нескольких основных наборах тестов:

Эти результаты тестов показывают интересное различие между HHVM и PHP. Так, PHP 7 способен проводить испытания в 164.844 секунд с пиковым потреблением памяти 30.879 Мб. HHVM выполняет тест в два раза быстрее (84.759 секунд), но! потребляет 4,5 раза больше оперативной памяти (МБ) 134,844. 

HHVM на Etsy

Гиганту peer-to-peer e-commerce Etsy, имеющему более, чем на $ 108 млн годового дохода с 54 млн. зарегистрированных пользователей, необходимы серьезные обновления его основной технологической инфраструктуры, перегруженной миллионами ежедневных посещений. Инженерам Etsy нужно улучшить производительность онлайн-услуг и повысить эффективность серверных центров обработки данных.

Компания приняла HHVM решение с открытым исходным кодом для запуска PHP приложений, чтобы максимизировать потенциал производительности существующей аппаратной инфраструктуры, без необходимости инвестировать в дополнительные ресурсы центра обработки данных.

Etsy более всего обеспокоены своей новой внутренней API для обработки большей пропускной способности, так что серверы могут обрабатывать больше вычислительных запросов, потребляют меньше энергии и уменьшают эксплуатационные расходы. Инженеры Etsy испытали HHVM против PHP 5.4, для случайных splaying запросов через три конечные точки API, начиная с 10 запросов в секунду и увеличивающихся до 280.

Результаты тестов показывают, как PHP испытал экспоненциальный упадок производительности от 190 запросов в секунду вперед. В то же время HHVM последовательно продемонстрировал высокую производительность до достижения 280 запросов в секунду.

HHVM также оптимизировал процессорное время (СPU time) и потребовал половину циклов процессора по сравнению с PHP, работающим с точно такими же Web-Traffic профилем, а также был более эффективным при взаимодействии с бэкендными сервисами:

HHVM на Wiki

Почти полмиллиарда пользователей интернета посещают Wikimedia каждый месяц. Сайт воплощает истинную философию Интернета в качестве средства бесплатного обмена информацией доступного для всего мира.

Действуя при минимальных бюджете и персонале, Фонд Wikimedia был вынужден использовать инновационные решения для повышения производительности потенциала сервера.

Wikimedia достигнуты следующие преимущества производительности путем развертывания HHVM:

  • Загрузка процессора снизилась с 50 процентов до 10 процентов.
  • Mean Page Save Time уменьшилась вдвое от шести секунд до трех. Это время в интервале между пользовательским нажатием кнопки "Отправить" или "Предварительный просмотр" и сервером обработки этого запроса. Викимедиа получил более 100 млн запросов на редактирование за 2014 году, и в настоящее время HHVM поможет сэкономить около 10 лет каждый год задержки.
  • Median Page Save Time сократилось на две трети, с 7,5 секунд до 2,5 секунд.
  • Average Page Load Time также снизилось с 1,3 секунд до 0,9 секунд.

Подведем результаты урока

Производительность веб-сайта является важным элементом успешного нахождения в состоянии online. Прогрессивные коммерческие организации проектируют системы для оптимизации инноваций, которые делают быстрее, чем когда-либо прежде интеллектуальные и полезные онлайн-сервисы.

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

  • HHVM значительно быстрее, чем PHP-Zend пакеты для всех версий PHP до PHP 7 или PHPng (PHP Next Generation).
  • PHP 7 имеет небольшое преимущество против HHVM для WordPress. Пользователям WordPress следует ожидать PHP 7, чтобы улучшить и расширить это преимущество в ближайшем будущем.
  • Переход на HHVM делается непростым нажатием кнопки.
  • Для больших окружений, таких как Etsy и Wikimedia Foundation нужно закладывать полгода, чтобы полностью переключиться с пакета PHP-Zend на PHP -HHVM пакет.
  • Для веб-сайтов с собственным хостингом, комплексный переход требует in-house компетенцию и может привести к сбоям пока не будет полностью завершен.
  • Online-бизнес должен выбрать между PHP 7 и HHVM чем раньше, тем лучше. Он по-прежнему продолжает подвергаться значительно более высоким эксплуатационным расходам по центрам обработки информации и рискует потерями имиджа из-за ненадлежащей производительности сайта.

 

Оптимизация производительности WordPress сайтов на основе PHP представляет собой непрерывный процесс небольшими частями постепенных улучшений. Инъекционные возможности повышения эффективности, в виде надстроек плагинов и незначительных изменений кода, в конечном итоге упираются в несостоятельность улучшить производительность, в связи с ограниченной возможностью PHP code-base и инфраструктуры.

Любые дальнейшие улучшения производительности - 100 процентов или выше - относятся к мощности сервера и возможности обработки вычислительных запросов на более высоких скоростях. Оба - и HHVM, и PHP 7 делают это возможным.

А что думаете вы - PHP7 или HHVM? Нам будет интересно узнать о вашем опыте использования HHVM и ваше мнение об этой статье на нашей странице в Twitter, а также в наших группах в Facebook, ВКонтакте, Google+

А также принять участие в опросе PHP7 vs HHVM

 

2015-09-30 оригинал

Последние посты

Комментарии

авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий