Корпоративный блог Центра Высоких Технологий

Андрей Лапин
Андрей Лапин
4 февраля 201014:00
Центр Высоких Технологий
Ижевск Россия
Facebook превратил PHP в C++

Схема работы 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

Роман Корнеев 6 февраля 2010 13:01
В продолжении темы: есть проект 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)
|
Дмитрий Кораблинов 8 февраля 2010 11:22
Роман Корнеев


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

А HipHop for PHP, как я понимаю, имеет совсем другую цель - не адаптация под программную платформу, а повышение производительности кода, только и всего Smile
|
Роман Корнеев 9 февраля 2010 10:46
Я особо не вникал в возможности Phalanger, но думаю, его можно использовать с такой же целью как HipHop for PHP. Или другой вариант: есть сайт на PHP, и библиотека классов на .NET. И стоит задача использовать классы из этой библиотеки в сайте на PHP, это можно добиться переведя проект PHP на платформу .NET и затем на прямую работать с этой библиотекой. Хотя есть и другой вариант: написать Web Service, т.е. дополнительный уровень абстракции между сайтом на PHP и библиотекой на .NET.. в общем полет фантазий можно продолжать сколько угодно ))
|

Добавить комментарий

 


Подписка

Последние комментарии