Rambler's Top100
Реклама
 
Все новости Новости отрасли

Facebook представила новую PHP-платформу HipHop

04 февраля 2010

Социальная сеть Facebook представила новую программную платформу HipHop, способную значительно ускорить работу популярного языка веб-разработки PHP.

В Facebook говорят, что функционал PHP в последние годы стал одной из самых сильных сторон этого языка, но вот такой важный параметр, как производительность отошел на второй план.

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

По словам независимых экспертов, социальная сеть Twitter делает ставку на язык программирования Ruby, где также есть некоторые проблемы с производительностью и масштабируемостью, и Twitter уже ощутила это.

Хайпин Чжао, инженер по разработке HipHop говорит, что все скриптовые языки, к коим относится и PHP, и Ruby и Python и другие, значительно менее эффективны, чем бинарные, такие как С или C++, когда дело доходит до непосредственной работы компилятора и связки "процессор-память" на сервере. На сравнительно небольших проектах такая разница может быть незаметной, но вот когда проекту, такому как Facebook, приходится генерировать до 400 млрд страниц в месяц, это становится важным.

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

По его словам, всего команда разработчиков трудилась над производительностью PHP в том или ином виде почти два года. Сейчас компания рада представить платформу HipHop которая позволит снять с процессора дополнительную нагрузку, освободить память и повысить скорость выполнения скрипов. "HipHop с технической точки зрения не является компилятором как таковым. Это, скорее, источник трансформации кода. HipHop программными методами трансформирует ваш код PHP в оптимизированный C++ и использует открытый компилятор G++ для его сборки. HipHop использует исходный код в той же семантической манере, что и C++", - говорит Чжао.

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

Вторым важным моментов разработки стала проблема масштабирования PHP. "Перед нами стояла задача трансформировать язык так, чтобы он мог отвечать потребностям и масштабам Facebook", - говорит Чжао.

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

Чжао говорит, что когда сотни тысяч пользователей одновременно начинают сами заходить в сети, открывать соединения с друзьями, те с другими и т.д., то количество работающих сессий на сервере может исчисляться миллионами. Для того, чтобы как-то сократить количество сессий в Facebook воспользовались подходами, реализованными в таких языках, как C++, Erlang и Java,  где в рамках одной сессии можно создать множество потоков данных.

"Изначально нам предложили эту идею на конференции Facebook Hackathon, позже такие механизмы были трансформированы в C++ и PHP", - рассказал Чжао. "В общем, можно сказать, что HipHop поможет нам сохранить все преимущества PHP, тогда как скорость работы сравнять со скоростью работы C++. Всего нами в рамках этого проекта было написано более 300 000 строк кода и проведено более 5000 тестов", - резюмирует он.

Публичная демонстрация HipHop состоится на ближайших OpenSource-конференциях FOSDEM (Free and Open Source Developers' European Meeting) and OSCON (O'Reilly Open Source Convention).

Источник: CyberSecurity

Заметили неточность или опечатку в тексте? Выделите её мышкой и нажмите: Ctrl + Enter. Спасибо!

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

Для комментирования необходимо авторизоваться!

Комментарии по материалу

Данный материал еще не комментировался.