Э

Мир энциклопедий

encyclopedia.ru

Разработчики ускорили выполнение кода движка Википедии

3D-логотип Википедии
  • 7 января 2015
  • просмотров 2292
  • комментариев 6
Инфраструктура Википедии (Wikipedia) переведена со штатного интерпретатора языка программирования PHP 5.3 на развиваемую инженерами Facebook виртуальную машину HHVM (HipHop Virtual Machine), которая позволила существенно ускорить выполнение кода движка MediaWiki, сообщают OpenNET и другие СМИ со ссылками на блоги Фонда Викимедиа (Wikimedia Foundation) и HHVM.

В настоящее время все некешируемые операции в Википедии (запросы к API, функции редактирования, показ кастомизированного интерфейса для зарегистрированных пользователей) производятся с использованием HHVM. Перевод Вики на HHVM начался в марте прошлого года. За этот период была проделана работа по устранению возникавших проблем.

В итоге внедрение HHVM позволило почти в два раза уменьшить время обработки динамического контента Википедии и значительно снизило нагрузку на процессор, по сравнению с прежней конфигурацией. Например, время сохранения изменений сократилось в среднем с 6 до 3 секунд, время выдачи страницы для зарегистрированных пользователей уменьшилось с 1.3 до 0.9 секунд, а загрузка процессоров на типовом сервере Вики снизилась в 5-6 раз. Отмечается, что по сравнению с PHP 5.3 в актуальной версии PHP 5.6 наблюдается заметный прогресс в области увеличения производительности, поэтому разница между PHP 5.6 и HHVM оказалась бы не столь значительной.

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

(Голосов: 3, Рейтинг: 3.33)

Комментарии

Предупреждение Для добавления комментариев требуется авторизация
  • Ссылка на комментарий
    Скажем так, нечасто, но пользуюсь этим энциклопедическим изданием. Особой разницы в скорости не заметил. Впрочем, она у меня и раньше не тормозила.
    • 0/0
  • Ссылка на комментарий
    Скорость для текстов не является первоочередным качеством, но всё же неплохо, когда информация отражается быстрее, даже если это и не заметно с первого взгляда.
    • 0/0
  • Ссылка на комментарий
    Ускорение в два раза — это очень существенно, и будет многими замечено, особенно теми, кто редактирует данные: ведь 6 секунд и 3 секунды — это огромная разница.
    • 0/0
  • Ссылка на комментарий
    Я думаю, ускорение работы движка важнее тем, кто пишет и редактирует статьи. Для читателей Википедии ускорение в 2 раза не так заметно и не так существенно.
    • 0/0
  • Ссылка на комментарий
    А я вот не заметил никакого ускорения. Более того, страницы энциклопедии стали открываться гораздо медленнее и как раз в последние месяцы.  Вопрос
    • 0/0
  • Ссылка на комментарий
    Николай Карпенко пишет:
    Ускорение в два раза — это очень существенно, и будет многими замечено, особенно теми, кто редактирует данные: ведь 6 секунд и 3 секунды — это огромная разница.
    Не скажу, что фанат этого энциклопедического издания, но не помню, чтобы сайт зависал даже на 3, то что на 6 секунд...
    • 0/0