LINUX.ORG.RU

Facebook выпускает виртуальную машину для PHP

 , ,


0

4

Facebook объявил о выпуске виртуальной машины для выполнения PHP-кода - HipHop Virtual Machine (hhvm)

Как известно, программисты facebook'а давно пытались решить задачу повышения быстродействия программ на PHP. В рамках проекта HipHop был создан компилятор hphpc, который транслировал код PHP в код C++, который потом компилировался в нативные бинарники. Но, так как статический анализ кода динамического языка программирования имеет определенные ограничения, было решено создать высокоуровневую стековую виртуальную машину hhvm. Код на PHP транслируется в байткод, который выполняется виртуальной машиной.

Уже сейчас hhvm практически догнал hphpc по быстродействию, и разработчики обещают еще повысить производительность.

Также, разработчики заявляют, что планируют и дальше держать код открытым и учитывать мнение сообщества.

>>> Подробности

★★★★★

Проверено: DoctorSinus ()
Последнее исправление: provaton (всего исправлений: 2)

Ответ на: комментарий от ACR

они собираются эту машинку забакпортить обратно в php проект? нафиг нужна оригинальная машинка если она сильно медленнее?

Медленнее чем что? Чем оригинальный интерпретатор или Хипхоп?

Ingwar ★★★★★
()
Ответ на: комментарий от goingUp

Они изобрели eaccelerator и apc?

встречал бенчмарки друапала под apc, нейтивным, и обработаным хипхопом. хипхоп+друпал немного проигрывает apc+друпал по памяти, но здорово выигрывает по скорости.

Ingwar ★★★★★
()
Ответ на: комментарий от xtraeft

а хрен его знает. я никогда не мерил - не такие нагруженные проекты. использовал apc и memcached.

Ingwar ★★★★★
()
HipHop

Название неправославное.

cipher ★★★★★
()

Код на PHP транслируется в байткод, который выполняется виртуальной машиной.

Вообще-то, так работает самый обычный PHP. И работает в своей виртуальной машине.

Тут цимес в том, что Facebook сделали не просто очередную VM под PHP, а сделали JIT.

KRoN73 ★★★★★
()
Ответ на: комментарий от Ingwar

В CPython нет JIT, а в PyPy есть. Аналогия некорректна.

Binary ★★★★★
()
Ответ на: комментарий от AlexCones

Если он ничем не отличается, то почему вместо этой ереси не использовать cgi?

А cgi-то тут при чем? И как оно поможет?

rtvd ★★★★★
()

В рамках проекта HipHop был создан компилятор hphpc

А что ты сделал для хип-хопа?

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от winddos

А в этот раз их поделка уже готова для работы на реальных серверах?

Видимо, готова. На реальных серверах fb. Твои поделки их не заботят.

anonymous
()
Ответ на: комментарий от Ingwar

а как PyPy может быть быстрее CPython?

JIT же...

AVL2 ★★★★★
()
Ответ на: комментарий от eveel

Велкам в наш, как говорится, ин риал ворлд!

anonymous
()

А в чем вообще нагруз на php? Я так понимаю, что весь хайлоад всегда в работу с данными и базой упирается, а на чем к этому морды написаны как-бы пофигу.. Не числодробилки же там пишутся на php.

ppy ★★
()

Если изначально рассчитывать на высокие нагрузки

то можно как в геймдеве частично писать на С++ частично на javascript подобном языке, по мере необходимости переписывая то что тормозит на С++, в любой момент можно реализацию любого отдельного класса переписать со скрипта на С++ не трогая при этом все остальное. Хотя возможно для веба этот вариант хуже подходит.

mio ★★
()
Ответ на: комментарий от VoDA

могли и просто компилятор PHP в java byte-code зафигачить и гонять поверх OpenJDK. Типа Scala только для студентов )))

Ну и кривой же байткод получится.

Napilnik ★★★★★
()
Ответ на: комментарий от Reset

бычтрый key-value

«быстрый» - понятие растяжимое. Напрмер, быстро написать, быстро продать, быстро бабла поднять. И так восемь раз, пока Reset, питаясь дошираком, будет свой radix на асме колупать.

anonymous
()
Ответ на: комментарий от goingUp

Как это может догнать по сути C++ код?

Внезапно, на любом языке пожно написать тормозную программу.

Napilnik ★★★★★
()
Ответ на: комментарий от frozenix

идея супер, производительность максимум, все языковые фишки C# - автоматическое управление памятью + можно вручную, работает даже на тех архитектурах, где JDK/Mono оптимизированы крайне слабо и производительность низка, потенциал огромен

популярность мизерная - фреймворков нет...

I-Love-Microsoft ★★★★★
()

давно пытались решить задачу повышения быстродействия программ на PHP

А может лучше просто не использовать php?

alpha2
()
Ответ на: комментарий от Reset

Видишь ли, «быстрый» в контексте применения php - это понятие однозначное, так что да, не надо передергивать.

echo $text |md5sum afbcc58589f5f816d59530ecc2f02cd1 -

anonymous
()

А они собираются делать JIT компиляцию и апп сервер?

cerberus
()
Ответ на: комментарий от ACR

java это прошлый век ынтерпрайза

+1

но кэп, за чем же будущее?

redixin ★★★★
()
Ответ на: комментарий от real_maverick

Плюсую. Было бы хорошо, чтобы Apache+PHP+MySQL вообще из коробки поддерживалось. Ах, мечты, мечты... ;)

ValPaliy ★★
()
Ответ на: комментарий от real_maverick

встроенная поддержка жабы на процах есть, интересно php тоже железом поддержат теперь? ;)

Вот куда потырились недостающие полмиллиарда транзисторов бульдозера, их жаба съела. Нафиг нужно, поддерживать надо нативный машинный код тем самым стимулируя оптимизацию тормозных ЯП.

Napilnik ★★★★★
()

Но, так как статический анализ кода динамического языка программирования имеет определенные ограничения, было решено создать высокоуровневую стековую виртуальную машину hhvm.

Что за бред? При чем тут ограничения анализа кода динамического языка программирования? Авторы типа утверждают, что создание компилера для пыха имеет какие-то принципиальные ограничения, а не просто «мы обосрались»?

anonymous
()
Ответ на: комментарий от real_maverick

интересно php тоже железом поддержат теперь?

Несомненно. Грядед железный веб-дев! Только представь, какие замысловатые конструёвины из пхп-процов будут городить толпы вебмакак будущего, вооруженные паяльником и изолентой!

anonymous
()

непонятно, почему не использовали JVM. а так ещё одна виртуальная машина. молодцы конечно, могут себе позволить и нетакое

PS. офигеть у них похоже даже JIT свой, а не LLVM или что-то готовое

anatolat
()

Столько телодвижений, чтобы максимум в полтора раза ускорить пхп... Не проще ли было бы переписать отдельные проблемные куски кода на том же с++?

bik ★★
()
Ответ на: комментарий от GluckMan

Уважаю, за размах и инициативу. А наши купили жижу, так все сразу и угасло нафик.

anonymous
()
Ответ на: комментарий от bik

Не проще ли было бы переписать отдельные проблемные куски кода на том же с++?

Продай идею Цукербергу! Озолотит!

KRoN73 ★★★★★
()
Ответ на: комментарий от nCdy

Это маразм.

Се ля ви, мой маленький друг, се ля ви. Кому-то в детстве сказки, кому-то суть жизни. Взрослей поскорее, мой маленький друг.

GluckMan ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.