The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Проект Wikipedia перешёл на использование HHVM для выполнени..."
Отправлено opennews, 07-Янв-15 11:10 
Инфраструктура свободной энциклопедии Wikipedia переведена (http://hhvm.com/blog/7205/wikipedia-on-hhvm) со штатного интерпретатора языка программирования PHP на развиваемую инженерами Facebook виртуальную машину HHVM (http://hhvm.com/) (HipHop Virtual Machine), которая благодаря поддержке JIT-компиляции позволила существенно (https://blog.wikimedia.org/2014/12/29/how-we-made-editing-wi... ускорить выполнение кода движка MediaWiki. В настоящее время все некешируемые операции в Wikipedia, такие как функции редактирования и запросы к API, производятся с использованием HHVM. Процесс миграции Wikipedia на HHVM начался (https://www.mediawiki.org/wiki/HHVM) в марте и продолжался 9 месяцев, за которые совместно с разработчиками из Facebook была проделана большая работа по устранению возникающих проблем, выявляемых в процессе тестового внедрения.


В частности, была выявлена несовместимость реализации класса DOMDocument (http://us3.php.net/manual/en/class.domdocument.php) в HHVM c используемым в MediaWiki кодом для экспорта и импорта данных в формате XML, а также проблемы с расширением для выполнения скриптов на языке Lua. Кроме того, была проделана работа по внесению оптимизаций, рассчитанных на специфику использования MediaWiki, которые были упущены из-за разработки HHVM с оглядкой на виды нагрузки, свойственные Facebook. Например, была обеспечена поддержка JIT при выполнении регулярных выражений и изменён метод отслеживания состояния объектов с заданными дескрукторами, что дополнительно ускорило выполнение кода на 8% и 4%.

В итоге, внедрение HHVM позволило в среднем на 45% (почти в два раза!) ускорить обработку динамического контента Wikipedia  и значительно снизило нагрузку на CPU, по сравнению с конфигурацией на основе PHP 5.3. Например, время сохранения изменений сократилось в среднем с 6 до 3 сек, а загрузка процессоров на типовом сервере Wikipedia снизилась почти в 6 раз. Отмечается, что по сравнению с PHP 5.3 в актуальной версии PHP 5.6 наблюдается заметный прогресс в области увеличения производительности, поэтому разрыв между PHP 5.6 и HHVM был бы не столь значимым.

<center><a href="http://hhvm.com/wp-content/uploads/2015/01/save-time-0-e1420... src="https://www.opennet.ru/opennews/pics_base/0_1420615302.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
<center><a href="http://hhvm.com/wp-content/uploads/2014/12/Screenshot-2014-1... src="https://www.opennet.ru/opennews/pics_base/0_1420615329.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>


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


URL: https://news.ycombinator.com/item?id=8847934
Новость: https://www.opennet.ru/opennews/art.shtml?num=41409

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру