В Facebook оптимизировали PHP и представили Open Source-проект HipHop
4Иллюстрация с сайта Wiki.Developers.Facebook.Com
Разработчики крупнейшей в мире социальной сети Facebook объявили о выпуске под свободной лицензией специального средства для оптимизации кода, написанного на языке PHP, — HipHop.
Потребность в оптимизации приложений для одного из популярнейших в мире веб-сервисов весьма очевидна. Использование PHP накладывает определенные ограничения на производительность, но в переходе на другой язык программирования в Facebook не заинтересованы, поскольку именно PHP позволяет им быстрее находить разработчиков и «шагать впереди планеты всей». Поэтому они решили оптимизировать код PHP, в результате чего и появился проект HipHop, использование которого позволило снизить нагрузку на серверы в среднем на 50%.
HipHop for PHP — это своеобразный «преобразователь исходного кода». Он конвертирует PHP-код в оптимизированную версию на C++, а затем обращается к g++ для его компиляции. Для его реализации разработчикам пришлось отказаться от некоторых редко используемых функций, таких как, например, eval(). Помимо непосредственно преобразователя кода в состав HipHop входят новая реализация среды исполнения PHP, а также ряд переписанных основных расширений к PHP (PHP Extensions) — все это сделано для того, чтобы воспользоваться всеми возможностями в оптимизации производительности.
В рамках проекта HipHop было написано более 300 тысяч строк кода и более 5 тысяч unit-тестов. Заявляется, что в итоге «HipHop позволяет сохранить все лучшее от PHP и получить преимущества в производительности, предоставляемые C++». Исходный код проекта будет опубликован в ближайшее время на GitHub под лицензией PHP.
Постоянная ссылка к новости: http://www.nixp.ru/news/10060.html. Дмитрий Шурупов по материалам developers.facebook.com.
- Facebook представила язык программирования Hack — альтернативу PHP для HHVM 2 21 марта 2014 г.
NGINX Unit — новый сервер приложений и основа для service mesh от создателей веб-сервера nginx 1
HHVM 3.20 — новая версия производительной виртуальной машины от Facebook для PHP-приложений 1
Ubilling 0.8.0 — новая версия свободного веб-интерфейса к биллинговой системе
Свободная CMS-система WordPress с релизом 4.7 получила новую тему оформления
PHP 7.1 — релиз популярного языка программирования с новыми возможностями 1
Facebook открыла исходный код алгоритма сжатия Zstandard и подсистемы хранения для MySQL MyRocks 1
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
eval() — это одна из наиболее циммусных возможностей PHP. Так что не очень всё это весело…
Но определённая сфера применения, конечно, найдётся…
А смысл?….
Давно известно, что «eval is evil».
При правильном проектировании подобные конструкции попросту не нужны.
Ой, правда что ли? А пацаны-то и не знают! Джон Маккарти, кстати, тоже… Пойду скажу!
Ой. Вообще странная штука. Но интересная.
Следующим шагом должно стать создание компилятора PHP, сразу компилирующего PHP и приделывающее виртуальное окружение.
Интересно, сможет ли он скомпилировать Symfony :)!
как сказал мой хороший знакомый:
«Эти ребята придумали CGI… СНОВА!»