LINUX.ORG.RU

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

 , ,


0

4

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

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

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

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

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

★★★★★

Проверено: DoctorSinus ()

А теперь для идиотов: как это работает?

AlexCones ★★★ ()

В рамках проекта HipHop был создан компилятор hphpc, который транслировал код PHP в код C++

психопаты какие-то

mlyaghost ()

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

Novell-ch ★★★★★ ()

А фирменные зонды «Like» там присутствуют в невыпиливаемом виде?

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

А что непонятно? Сказано же:

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

И ссылки есть - можно посмотреть.

OldFatMan ()

ненужно на ненужно ненужно погоняет

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

Как это использовать и нужно ли вообще это тыкать палочкой. Что-то я себе плохо представляю механизм.

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

> Как это использовать

Читай по ссылкам, мне думается в новости неуместны иструкции по установке и использованию.

нужно ли вообще это тыкать палочкой.

Если бы у меня был бы высоконагруженный сайт, написанный на ПХП я б потыкал.

Что-то я себе плохо представляю механизм.

А в жабке или дотнете представляешь механизм?

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

Делает то же самое, что и остальные виртуальные машины. Как питон, например.

note173 ★★★★★ ()

Революция, нэ? Php стал еще быстрее?

Ginki ()
Ответ на: комментарий от note173

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

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

Я тоже говорю - почему бы не переписать все на c++?

note173 ★★★★★ ()

Что-то мне смысл этой затеи не понятен.

urxvt ★★★★★ ()

HHBC instructions may push and pop values on the current frame's evaluation stack and they may read and write values to the current frame's local variables. Values come in four flavors: cells, vars, homes, and classrefs.

Братишка, я тебе СТЕКОВУЮ МАШИНУ принес.

Фу, млять, копрофилы.

anonymous ()

<Потролю немножко>
Это надо быть настоящим евреем. Цукерберг на свои миллионы уже мог бы свой ЯП замутить «c jit и gc». Нет же - не хочет мордокнигу переписывать. Это как чай на 20 раз заваривать потому что жалко выбросить.

Galant ()
Ответ на: комментарий от note173

на плюсах сложно писать и поддерживать большие проекты, чуть где ошибешся - утечки и сегфолты, компилируются сравнительно долго опять таки

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

Братишка, я тебе СТЕКОВУЮ МАШИНУ принес.

я щито вы имеете предложить для организации областей видимости взамен стэков?

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

на плюсах сложно писать и поддерживать большие проекты, чуть где ошибешся - утечки и сегфолты, компилируются сравнительно долго опять таки

тогда на С. Компилируется быстро )

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

...одновременно повышая стоимость акций своего детища.

«Акулы капиталистического мира», что с них взять. :)

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

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

FastCGI

А вообще могли бы и свой веб-сервер написать, какой-нибудь facebookd с блэкджеком и самками легкого поведения

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

тогда на С

еще хуже. в бизунесе и ынтырпрайзе без ООП сейчас никуда

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

я писал на С, для бузинеса и ынтырпрайза, ничего страшного

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

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

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

можно по частям, постепено заменять пхп-шный код на С++, ничего невозможного в этом нету

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

Причем здесь области видимости? Не знаешь что такое стековые виртуальные машины? Не знаешь, что на них ни одной годной вещи вроде замыкания или исключения по-людски не сделаешь? Не в курсе что их в рот сношают регистровые вм?

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

мне кажется следующая модель разработки выглядит привлекательнее:

1) имеется отдел разработки из вчерашних школьников и выпускников каледжей, только научившихся писать хеллоуворлды на пхп (которых уволнять и нанимать новых сотнями эйчэрам не страшно), вот, сидят пилят новый функционал, фиксят баги; пых у них обычный интерпретируемый, з/п соответсвующие, т.е. поменьше чем у плюсовиков.

2) тестеры тесят, находят баги и всё такое; 2б) фб-юзеры срут в каментах типа «хотим такие-то фичи»; 2в) менеджеры решают какие багофичи нужны;

3) бородатые матерые тим-лиды с одминами периодически компилируют девелоперские версии в байт-код на боевых фб-серверах, т.е. какбы релизы.

в общем, и пых какбы теперь шустр и багофичи пилить быстро и дешево

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

Вообще, одной из причин создание этой штуки было то, что hphpc было неудобно использовать в разработке. Они написали интерпретатор hphpi, но он использовал абсолютно отдельную реализацию парсинга. Поддерживать одновременно hphpc и hphpi было диким гемором, и они решили что лучше заменить обоих одной виртуальной машиной.

provaton ★★★★★ ()

Очень приятная новость. Правда смысл есть разве что в очень высоконагруженных проектах, где нельзя распараллелить нагрузку. А это редкость.

P.S. Кстати, тут расписано, зачем это нужно фэйсбуку

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

это конечно круто, но может случится, что люди из пункта 1) понапишут такое, что никому не захочется в этом возиться и полностью разбираться в структуре, в итоге проект рухнет под своей тяжестью

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

понапишут такое...

для этого есть тим-лиды, проходящие с кнутом меж девелоперских грядок под палящим американским солнцем ))

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

т.е. hphp* в общем случает дико несовместимы с основной (которая php.net) реализацией?

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

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

Но я не разраб фейсбука, и даже не программер на ПХП, могу ошибаться.

provaton ★★★★★ ()

Всем молодцам урок - планируй масштабируемость и нагрузки заранее и выбирай технологию впрок.

Nicholass ★★★ ()

Быдлопхп не умрёт никогда... Блин, вот их бы энергию да в нормальное русло...

true_admin ★★★★★ ()

-А что ты сделал для хипхопа?
-Написал говносайт...

Quasar ★★★★★ ()

Какое ужасное название...

Eddy_Em ☆☆☆☆☆ ()

Теперь и hhvm будет жрать тонны памяти как jvm ? Велосипедисты, такие велосипедисты.

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

Их энергия как раз в нормальном русле. Ругать - все умеют, а вот показать, как надо - нет ;)

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

Вы можете предложить более гибкий и в тоже время производительный механизм реализации?

buddhist ★★★★★ ()

чем это лучше eAcceleratoroв, если там нет JIT?

anonymous ()

транслировал код PHP в код C++

АДЪ.

было решено создать высокоуровневую стековую виртуальную машину

Быдлокодеры из мордокниги неосилили Parrot.

kranky ★★★★★ ()

чем им ява не угодила? Или взяли бы какой-нибудь нормальный язык с llvm-машиной.

XVilka ★★★★ ()

был создан компилятор hphpc, который транслировал код PHP в код C++

Вот взяли и с прикола эмулировали работу мозга индусокодера.

segfault ★★★★★ ()

Печально, что они инвестируют в PHP, а не в Ruby или Python.

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