3

Facebook превратил PHP в C++

Andrey Lapin
4 февраля 2010 года
Схема работы HipHop for PHP
Схема работы HipHop for PHP

Разработчики Facebook обнародовали проект HipHop for PHP, который
превращает код на языке PHP в код на языке C++. Последний компилируется
в обычное приложение, которое выполняется гораздо быстрее, чем сценарий
на PHP. В развитии проекта могут принять участие все желающие —
Facebook раскрыл его исходные коды.

HipHop for PHP помог крупнейшей социальной сети в мире вдвое снизить
нагрузку на процессор на ее веб-серверах и ускорить показ 400 миллиардов
PHP-страниц в месяц. Тем самым значительно снизились требования к числу
серверов, а следовательно, и расходы компании.

Разработка HipHop for PHP заняла два года. В настоящее время проект
содержит 300 тысяч строк кода и прошел свыше пяти тысяч тестов. HipHop
for PHP работает с некоторыми ограничениями, запрещая некоторые слишком
сложные для перевода на C++ или медленные конструкции PHP.

PHP — один из самых популярных языков веб-разработки. В том числе авктивно используется в ЦВТ.

Метки:

3 комментария к записи «Facebook превратил PHP в C++»

  1. Роман Корнеев,

    В продолжении темы: есть проект Phalanger (http://php-compiler.net), который позволил прийти языку программирования PHP во вселенную .NET. Phalanger – это компилятор PHP в IL-код. Проект активно развивается, и скоро разработчики обещают выпустить новый релиз (предыдущий был в декабре 2008).

    Проект Phalanger это:

    * Компилятор phpc;
    * Среда исполнения программ, написанных на PHP;
    * Расширение языка PHP/CLI;
    * Компоненты интеграции с Visual Studio.

    Компилятор phpc позволяет компилировать PHP код в режиме совместимости (Legacy compilation mode), либо в режиме «чистый .NET» (pure .NET compilation mode). Режим совместимости позволяет любому вашему коду для родного интерпретатора компилироваться и работать без каких-либо проблем. Режим «чистый .NET» привносит более тесную интеграцию с .NET framework – можно использовать код, написанный на PHP/CLI, в других приложениях .NET.
    PHP/CLI дополняет PHP такими родными для мира .NET фичами, как генерики, атрибуты и партиал классы (pure mode).
    Новый релиз сулит нам следующие вкусности:

    * Поддержка спецификации PHP версии 5.3.1;
    * «Утиная» типизация для, еще более тесной, интеграцией с .NET;
    * Улучшенная интеграция с VS, с поддержкой IntelliSense;
    * Поддержку Silverlight 2.0;
    * И, конечно же, исправление багов, найденных с предыдущего релиза.

    Также Phalanger уже поддерживает

    * Разработку WinForms приложений;
    * Разработку и отладку Silverlight 1.1 приложений;
    * ASP.NET 2.

    Phalanger совместим со множеством бесплатных CMS, движков блогов и прочих PHP приложений. Данный проект, возможно, будет полезен тем, кто хочет постепенно изучить платформу .NET Framework и/или перейти на неё полностью c PHP.

    (скопипастино отсюда: http://blog.hazzik.ru/2010/01/php-net.html)

  2. Роман Корнеев,

    На мой взгляд, этот Phalanger — такая "вещь в себе". Практической пользы я в нем не вижу. Хочешь получить качественный код на .NET — пиши на соответствующих языках, к чему лишние извращения? Интересно, пожалуй, только с точки зрения реализации (у самого однажды была мысль адаптировать один малоизвестный язык для .NET — просто чтобы лучше разобраться в технологии).

    А HipHop for PHP, как я понимаю, имеет совсем другую цель — не адаптация под программную платформу, а повышение производительности кода, только и всего :)

  3. Роман Корнеев,

    Я особо не вникал в возможности Phalanger, но думаю, его можно использовать с такой же целью как HipHop for PHP. Или другой вариант: есть сайт на PHP, и библиотека классов на .NET. И стоит задача использовать классы из этой библиотеки в сайте на PHP, это можно добиться переведя проект PHP на платформу .NET и затем на прямую работать с этой библиотекой. Хотя есть и другой вариант: написать Web Service, т.е. дополнительный уровень абстракции между сайтом на PHP и библиотекой на .NET.. в общем полет фантазий можно продолжать сколько угодно ))

Оставить комментарий