Квест → Как хакнуть форму
Прошли: 77
Несколько лет назад разработчики из 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, выполняемая на 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.
Гиганту 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 профилем, а также был более эффективным при взаимодействии с бэкендными сервисами:
Почти полмиллиарда пользователей интернета посещают Wikimedia каждый месяц. Сайт воплощает истинную философию Интернета в качестве средства бесплатного обмена информацией доступного для всего мира.
Действуя при минимальных бюджете и персонале, Фонд Wikimedia был вынужден использовать инновационные решения для повышения производительности потенциала сервера.
Wikimedia достигнуты следующие преимущества производительности путем развертывания HHVM:
Производительность веб-сайта является важным элементом успешного нахождения в состоянии online. Прогрессивные коммерческие организации проектируют системы для оптимизации инноваций, которые делают быстрее, чем когда-либо прежде интеллектуальные и полезные онлайн-сервисы.
В то время, пока мы ждем стабильного релиза PHP 7 для реальной победы в битве HHVM против PHP 7, разработчики и онлайн-бизнес могут рассчитывать на следующие ключевые выводы на основе частных результатов тестов от различных разработчиков и компаний:
Оптимизация производительности WordPress сайтов на основе PHP представляет собой непрерывный процесс небольшими частями постепенных улучшений. Инъекционные возможности повышения эффективности, в виде надстроек плагинов и незначительных изменений кода, в конечном итоге упираются в несостоятельность улучшить производительность, в связи с ограниченной возможностью PHP code-base и инфраструктуры.
Любые дальнейшие улучшения производительности - 100 процентов или выше - относятся к мощности сервера и возможности обработки вычислительных запросов на более высоких скоростях. Оба - и HHVM, и PHP 7 делают это возможным.
А что думаете вы - PHP7 или HHVM? Нам будет интересно узнать о вашем опыте использования HHVM и ваше мнение об этой статье на нашей странице в Twitter, а также в наших группах в Facebook, ВКонтакте, Google+
А также принять участие в опросе PHP7 vs HHVM