Jump to content

ХХВМ

ХХВМ
Разработчик(и) Мета-платформы
Первоначальный выпуск 9 декабря 2011 г .; 12 лет назад ( 09.12.2011 ) [1]
Стабильная версия
3.15.0 [2]  Отредактируйте это в Викиданных / 28 сентября 2016 г .; 7 лет назад ( 28 сентября 2016 )
Репозиторий
Написано в PHP , С++ , [3] OCaml [4] [а] и ржавчина [5]
Лицензия Лицензия PHP и лицензия Zend [6]
Веб-сайт ххвм Отредактируйте это в Викиданных

HipHop Virtual Machine ( HHVM ) — это виртуальная машина с открытым исходным кодом, основанная на JIT-компиляции , которая служит механизмом выполнения для языка программирования Hack . Используя принцип JIT-компиляции, код Hack сначала преобразуется в промежуточный байт-код HipHop ( HHBC ), который затем динамически транслируется в x86-64 машинный код , оптимизируется и исполняется в собственном коде. [7] [8] выполнением PHP Это контрастирует с обычным интерпретируемым , при котором Zend Engine преобразует исходный код PHP в коды операций , которые служат формой байт-кода Zend Engine , и выполняет коды операций непосредственно на виртуальном процессоре . [9]

HHVM разработан Meta , исходный код проекта размещен на GitHub ; [10] он лицензируется на условиях PHP License и Zend License . [1] [6]

HHVM был создан как преемник механизма выполнения PHP HipHop for PHP PHP- C++, (HPHPc), который представляет собой транспилятор также созданный Facebook. [11] [12] Основываясь на полученном опыте и стремясь решить проблемы, возникающие при использовании HPHPc, в начале 2010 года компания Meta решила создать виртуальную машину PHP на базе JIT . Проблемы, связанные с HPHPc, включали достижение плато для дальнейшего улучшения производительности, фундаментальную неспособность поддерживать все функции языка PHP, а также трудности, возникающие из-за определенных трудоемких и ресурсоемких процессов разработки и развертывания. [11] В первом квартале 2013 года производственная версия веб-сайта facebook.com перестала использовать HPHPc и перешла на HHVM.

Следуя принципу JIT-компиляции, HHVM сначала преобразует исполняемый код в промежуточный язык высокого уровня — байт-код HHBC. HHBC — это формат байт-кода, созданный специально для HHVM, подходящий для использования как интерпретаторами , так и JIT-компиляторами. Затем HHVM динамически («точно в срок») преобразует HHBC в машинный код x86-64, оптимизированный посредством динамического анализа преобразованного байт-кода. Наконец, он выполняет машинный код x86-64. [1] [11] [13] В результате HHVM имеет определенное сходство с виртуальными машинами, используемыми другими языками программирования, включая среду Common Language Runtime (CLR для языка C# ) и виртуальную машину Java (JVM для языка Java ).

HHVM имеет множество преимуществ по сравнению с HPHPc. HHVM использует один и тот же механизм выполнения при развертывании как в производственной среде, так и в среде разработки, одновременно поддерживая интеграцию между механизмом выполнения и HPHPd отладчиком в обоих типах сред; в результате поддержка HPHPi (интерпретатора HipHop) отдельно в качестве утилиты разработки больше не требуется, как это было в случае с HPHPc. HHVM также исключает длительные сборки, необходимые HPHPc для запуска программ, что значительно упрощает процессы разработки и развертывания, чем в случае с HPHPc. [1] Наконец, версии HHVM до 4.0 имеют почти полную поддержку всего языка PHP (согласно официальной реализации PHP версии 5.4), включая поддержку create_function() и eval() конструкции, что было невозможно с HPHPc. [14] [15]

Вместе с HHVM 3.0, [16] Meta также выпустила Hack , производную от PHP. [17] [18] Это позволяет программистам использовать как динамическую , так и статическую типизацию (концепция, также известная как постепенная типизация ), а также позволяет типы указывать функции для аргументов , возвращаемых значений функции и свойств класса . Однако Hack не обеспечивает полную обратную совместимость , поскольку удаляет некоторые функции PHP, такие как goto имена операторов и динамических переменных . [19] [20] [21] [22]

В сентябре 2017 года было объявлено, что версия 3.30 станет последней версией HHVM, официально поддерживающей PHP, и что в будущем HHVM будет поддерживать только Hack. [23] Это произошло из-за различий и несовместимости PHP 7. [24] HHVM 4.0, выпущенная в феврале 2019 года, стала первой версией без поддержки PHP. [25]

Производительность

[ редактировать ]

Как виртуальная машина процесса, обеспечивающая среду выполнения, HHVM имеет возможность использовать информацию о текущих типах для создания более эффективного собственного кода , что приводит к более высокой пропускной способности веб-сервера и снижению задержки . В четвертом квартале 2012 года выполнение исходного кода facebook.com на HHVM достигло уровня производительности с HPHPc. [11] а в декабре 2013 г. показатель HPHPc был даже превзойден примерно на 15%. [26]

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Только Hack типа проверка ( hh_server и hh_client ) и форматирование кода ( hh_format ) Утилиты командной строки и демоны , поставляемые вместе с виртуальной машиной HipHop, написаны на OCaml .
  1. ^ Перейти обратно: а б с д Джейсон Эванс (9 декабря 2011 г.). «Виртуальная машина хип-хопа» . Метаплатформы . Проверено 2 августа 2014 г.
  2. ^ «Выпуск 3.15.0» . 28 сентября 2016 г. Проверено 13 марта 2018 г.
  3. ^ «Сборка и установка HHVM на CentOS 7.x» . github.com . Метаплатформы . 26 мая 2015 года . Проверено 12 июня 2015 г.
  4. ^ «Создание средства проверки типов Hack» . github.com . Мета. 10 сентября 2014 года . Проверено 12 июня 2015 г.
  5. ^ «HHVM Facebook начинает переписывать Rust — Phoronix» . Проверено 29 августа 2019 г.
  6. ^ Перейти обратно: а б «facebook/hhvm: Лицензия» . github.com . Facebook, Inc. Проверено 2 августа 2014 г.
  7. ^ Оттони, Гильерме (20 июня 2018 г.). «HHVM JIT: регионально-ориентированный компилятор для PHP и взлома» . Материалы 39-й конференции ACM SIGPLAN по проектированию и реализации языков программирования (PLDI) . АКМ . стр. 151–165.
  8. ^ «Фейсбук/ххвм» . github.com . Метаплатформы . Проверено 2 августа 2014 г.
  9. ^ Кошик Пал (28 апреля 2014 г.). «Внутреннее устройство PHP и Zend Engine» . phpbuilder.com . Архивировано из оригинала 15 сентября 2014 года . Проверено 23 сентября 2014 г.
  10. ^ Исходный код HHVM на GitHub.
  11. ^ Перейти обратно: а б с д Дрю Пароски (29 ноября 2012 г.). «Ускорение разработки на основе PHP с помощью HHVM» . Метаплатформы . Проверено 2 августа 2014 г.
  12. ^ «Объявление об удалении GitHub поддержки HPHPc» . github.com . Метаплатформы . 19 февраля 2013 года . Проверено 24 мая 2013 г.
  13. ^ «Байткод HipHop v1, версия 18» . github.com . Метаплатформы . 31 июля 2014 года . Проверено 24 мая 2013 г.
  14. ^ «facebook/hhvm: Об обновлении движка PHP 5.4» . github.com . Май 2013 года . Проверено 2 августа 2014 г.
  15. ^ «facebook/hhvm: Домой» . github.com . Метаплатформы . 8 мая 2014 года . Проверено 2 августа 2014 г.
  16. ^ Пол Тарьян (28 марта 2014 г.). «ХХВМ 3.0.0» . Фейсбук . Проверено 26 декабря 2022 г.
  17. ^ Кейд Мец (20 марта 2014 г.). «Facebook представляет «Hack» — язык программирования будущего» . Проводной . Проверено 15 апреля 2014 г.
  18. ^ Жюльен Верлаге; Алок Менграджани (апрель 2014 г.). «Хак: новый язык программирования для HHVM» . code.facebook.com . Фейсбук . Проверено 23 марта 2014 г.
  19. ^ Джош Локхарт (3 апреля 2014 г.). «Взлом Facebook, HHVM и будущее PHP» . О'Рейли Медиа . Проверено 2 августа 2014 г.
  20. ^ «Взлом и HHVM: Аннотации типов (Руководство по взлому)» . docs.hhvm.com . Проверено 25 марта 2014 г.
  21. ^ «Взлом и HHVM: вывод типа (Руководство по взлому)» . docs.hhvm.com . Архивировано из оригинала 26 марта 2014 года . Проверено 25 марта 2014 г.
  22. ^ «Hack и HHVM: неподдерживаемые функции PHP в Hack (Руководство по взлому)» . docs.hhvm.com . Архивировано из оригинала 4 ноября 2015 года . Проверено 2 апреля 2014 г.
  23. ^ Фред Эммотт (12 сентября 2018 г.). «Прекращение поддержки PHP и будущее взлома» . Проверено 26 декабря 2022 г.
  24. ^ Криль, Пол (20 сентября 2017 г.). «Забудьте о PHP! Вместо этого движок HHVM Facebook переключается на Hack» . Инфомир . Проверено 6 февраля 2019 г.
  25. ^ Фред Эммотт (11 февраля 2019 г.). «ХХВМ 4.0.0» . Проверено 26 декабря 2022 г.
  26. ^ «Мы — 98,5% (и 16%)» . hhvm.com . 19 декабря 2013 года . Проверено 2 августа 2014 г.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c3ff4b0261ceb53e457563185a0df8a3__1710029160
URL1:https://arc.ask3.ru/arc/aa/c3/a3/c3ff4b0261ceb53e457563185a0df8a3.html
Заголовок, (Title) документа по адресу, URL1:
HHVM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)