HipHop от Facebook - для чего он? - PullRequest
       17

HipHop от Facebook - для чего он?

6 голосов
/ 02 февраля 2010

Сегодняшние новости в мире PHP - это хип-хоп Facebook , который:

HipHop для PHP технически сам по себе не является компилятором. Скорее это преобразователь исходного кода. HipHop программно преобразует ваш исходный код PHP в высоко оптимизированный C ++, а затем использует g ++ для его компиляции. HipHop выполняет исходный код семантически эквивалентным образом и жертвует некоторыми редко используемыми функциями, такими как eval (), в обмен на повышение производительности. HipHop включает в себя преобразователь кода, повторную реализацию системы времени выполнения PHP и переписывание многих распространенных расширений PHP, чтобы воспользоваться преимуществами этой оптимизации производительности.

Мой вопрос: для какого типа веб-приложений это действительно полезно?

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

Ответы [ 6 ]

7 голосов
/ 02 февраля 2010

Веб-приложения, которые много обрабатывают и / или используют много памяти. По-видимому, этот хип-хоп сократит загрузку процессора примерно на 50%, а также уменьшит использование памяти (я не видел, насколько использование памяти было бы уменьшено в любом месте). Это означает, что вы сможете обслуживать одинаковое количество запросов с меньшим количеством серверов.

Дополнительным преимуществом может быть то, что будет некоторая базовая проверка типов, чтобы убедиться, что код согласован до его компиляции. Это должно помочь определить тип ошибок, которые PHP в настоящее время стремится игнорировать из-за своей слабой системы типов.

Недостатком является то, что он может не поддерживать некоторые из более динамичных функций PHP, таких как eval (хотя, возможно, это тоже положительно).

4 голосов
/ 03 февраля 2010

Что ж, он «превращает» PHP в C ++, чтобы повысить производительность масштабируемого веб-сайта.

Итак, HipHop, когда у вас есть веб-сайт, который вы открыли в Гарварде, быстро превращается в компанию за миллиард долларов и люди снимают фильм о Джастине Тимберлейке в главной роли.Если у вас есть такой веб-сайт и вы хотите сохранить циклы ЦП, но не хотите переписывать свою кодовую базу, вы используете HipHop.

Если вы только начинаете, если только вы не оказались в ловушке на необитаемом острове только сПрограммисты PHP, которые отказываются изучать более масштабируемый язык, вы не используете HipHop.

2 голосов
/ 02 февраля 2010

Запуск машинного кода поверх интерпретируемого кода происходит быстрее. Это полезно в некотором смысле, но также уменьшает количество машин, которые вам требуются, поскольку каждый процессор выполняет меньше работы.

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

0 голосов
/ 05 февраля 2010

Хип-хоп практически бессмысленен для всех, кроме Facebook и других гигантских сайтов на PHP. Я уверен, что многие люди будут прыгать на подножку из-за "это быстро", но сколько приложений на основе PHP используют целые фермы серверов? То, что вы работаете на сайте социальной сети, не означает, что вам стоит подумать об использовании HH.

0 голосов
/ 05 февраля 2010

Вы можете думать о нем как о некоем компиляторе, который принимает кучу файлов .php и генерирует кучу файлов c ++, для которых вы можете затем скомпилировать с помощью g ++ (не уверен, что другие компиляторы поддерживаются). Полученный exe-файл - это ваше веб-приложение с включенным веб-сервером. Это означает, что вы можете запустить exe, и вы готовы идти. Веб-сервер основан на libevent и предположительно довольно эффективен.

0 голосов
/ 05 февраля 2010

Эта статья:

http://terrychay.com/article/hiphop-for-faster-php.shtml

прекрасно отвечает на этот вопрос с помощью серии утверждений «если».

...