The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

02.02.2010 22:36  Компания Facebook открыла код высокопроизводительного PHP транслятора

Разработчики социальной сети Facebook представили проект "HipHop" - новый открытый транслятор для языка PHP, распространяемый в рамках свободной лицензии PHP. HipHop трансформирует код PHP скриптов в высоко оптимизированное представление на языке C++, пригодное для дальнейшей компиляции при помощи g++ в машинные инструкции. В настоящее время HipHop используется для обработки около 90% запросов в сети Facebook.

В состав пакета входит транслятор кода, переработанный PHP runtime и набор переписанных с целью повышения производительность стандартных библиотек и расширений. По заявлению разработчиков использование HipHop позволяет уменьшить нагрузку на CPU примерно на 50%. Обратной стороной высокой производительности является принципиальное отсутствие поддержки некоторых PHP конструкций, таких как eval(). HipHop содержит более 300 тыс. строк кода и 5 тыс. unit-тестов, загрузить исходные тексты транслятора можно будет через несколько часов с сервиса GitHub.

Проект создан как универсальная альтернатива традиционному в больших проектах способу оптимизации - переписыванию наиболее ресурсоемких участков PHP кода на языке C/C++ и оформления таких блоков в виде PHP расширений. Перед созданием HipHop в Facebook были предприняты и другие методы оптимизации, например, был переписан код Zend Engine и патчи переданы проекту PHP, но результат подобной оптимизации оказался не таким большим как хотелось бы. Zend Engine преобразует исходные тексты на языке PHP в опкод, который затем выполняется на виртуальной машине Zend. Проекты подобные APC и eAccelerator кешируют сгенерированный опкод, а Zend Server кроме кеширования добавляет в опкод некоторые дополнительные оптимизации.

Из других подобных проектов отмечены компиляторы phc и Roadsend, преобразующие PHP код в представление на языке Си, Quercus - транслятор PHP в Java и проект Phalanger, преобразующий PHP код в .Net.

  1. Главная ссылка к новости (http://developers.facebook.com...)
Лицензия: CC-BY
Тип: Интересно / К сведению
Ключевые слова: Facebook, php, compile, gcc, optimization, tune, speed
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, ПринцЧорнойТьмы, 23:02, 02/02/2010 [ответить] [смотреть все]
  • +3 +/
    Отличное название!
     
  • 1.4, аноним, 23:18, 02/02/2010 [ответить] [смотреть все]
  • +7 +/
    Я всегда говорил что любая интерпретируемая дрянь все равно надо или поздно вернется к нативному коду.
     
     
  • 2.5, IGX, 23:38, 02/02/2010 [^] [ответить] [смотреть все] [показать ветку]
  • +2 +/
    Да Чем больше популярность языка, тем выше к нему требования, включая производи... весь текст скрыт [показать] [показать ветку]
     
  • 2.7, User294, 23:52, 02/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Знаете, самое издевательское во всей скриптовой байде то что ПРОЦ НЕ УМЕЕТ ВЫПОЛ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.12, Gambler, 00:22, 03/02/2010 [^] [ответить] [смотреть все]  
  • –5 +/
    Неа Вопрос не весь Еще есть такая штука, как архитектура Если оптимальный ско... весь текст скрыт [показать]
     
     
  • 4.13, User294, 00:35, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    А тут все просто По умолчанию подразумеваются равные стартовые условия для всех... весь текст скрыт [показать]
     
  • 4.24, Карбофос, 09:27, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    это шедевр а примеры будут о, да в одном случае получаем Parse error syntax ... весь текст скрыт [показать]
     
     
  • 5.54, Gambler, 21:00, 03/02/2010 [^] [ответить] [смотреть все]  
  • –2 +/
    Java EE И не надо говорить что она не компилируется - все нормальные VMы давно ... весь текст скрыт [показать]
     
     
  • 6.56, Карбофос, 21:58, 03/02/2010 [^] [ответить] [смотреть все]  
  • +2 +/
    тут кто-то говорит, что ява не компилируется ужас, если вам такое послышалось, ... весь текст скрыт [показать]
     
  • 5.69, User294, 00:08, 06/02/2010 [^] [ответить] [смотреть все]  
  • +2 +/
    Можно пример Скажем если есть массив из 100 000 000 записей, лобовой перебор та... весь текст скрыт [показать]
     
     
  • 6.71, Карбофос, 15:31, 06/02/2010 [^] [ответить] [смотреть все]  
  • +/
    конечно, как и все тесты производительности java vs c c где первая по результа... весь текст скрыт [показать]
     
  • 2.29, Чорная дипрессия 666, 10:12, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Ерунда Основные тормоза у дисковой подсистемы и базы данных И у фейсбука, как ... весь текст скрыт [показать] [показать ветку]
     
     ....нить скрыта, показать (10)

  • 1.6, Altie, 23:43, 02/02/2010 [ответить] [смотреть все]  
  • –1 +/
    Может есть резон сразу писать на Си или чем ином, для экономии не только ресурсов но и времени? А что будет - PHP или ASP - уже не так важно.
     
     
  • 2.8, Gambler, 00:06, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Если бы был нормальный компилируемый язык с GC, OO и нормальной работой со трока... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, ffsdmad, 00:39, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    буквально ради этого начал разбирать с D там кстати открыли исходники родного ко... весь текст скрыт [показать]
     
     
  • 4.55, Gambler, 21:11, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    Я пока жду книги по D2 Выйдет - куплю, тоже начну разбираться ... весь текст скрыт [показать]
     
  • 3.32, Unixoid_потому_что_кривые_руки_писали_этот_модуль, 10:50, 03/02/2010 [^] [ответить] [смотреть все]  
  • +1 +/
    Такой язык есть, это C - http www hpl hp com personal Hans_Boehm gc simple... весь текст скрыт [показать]
     
  • 2.28, Чорная дипрессия 666, 10:11, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Тогда фейсбук был бы написан к 2100 году.
     
  • 2.45, тоже Аноним, 14:01, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Можно сразу писать на Си Но потом вы выделите часто использующиеся функции в от... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.64, igor, 18:01, 04/02/2010 [^] [ответить] [смотреть все]  
  • +2 +/
    Интересная ситуация получается Автор пхп его разработал как раз для того чтобы ... весь текст скрыт [показать]
     
  • 1.9, Happy New Fear, 00:11, 03/02/2010 [ответить] [смотреть все]  
  • +/
    php++ is alive.
     
  • 1.10, Аноним, 00:16, 03/02/2010 [ответить] [смотреть все]  
  • –1 +/
    Очередной костыль лучше бы нормальный fastcgi сделали - это решило бы проблему ... весь текст скрыт [показать]
     
     
  • 2.25, pro100master, 09:44, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    чем именно решило бы Убрать затраты на вызов - да, добавить оптимизатор gcc - н... весь текст скрыт [показать] [показать ветку]
     
  • 2.48, Аноним, 14:16, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Чем FPM не устроил Бред Оверхед динамической типизации и интерпритации гораздо... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.62, Аноним, 13:48, 04/02/2010 [^] [ответить] [смотреть все]  
  • +/
    обработка запросов в php-fastcgi,mod-php,FPM принципиально ничем не отличаются ... весь текст скрыт [показать]
     
  • 2.70, User294, 00:10, 06/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Хинт сам PHP от этого быстрее не заработает ... весь текст скрыт [показать] [показать ветку]
     
  • 1.11, Аноним, 00:21, 03/02/2010 [ответить] [смотреть все]  
  • –1 +/
    Интерстно а в нем можно частично перегнать пхп проект в С чтобы например теже ... весь текст скрыт [показать]
     
  • 1.15, evgeny_t, 00:46, 03/02/2010 [ответить] [смотреть все]  
  • +1 +/
    пц )))
    говорял я им использовать java )))
     
     
  • 2.17, Mna, 01:21, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Да-да-да я обеими руками за создание High-Performance Java-to-C compiler, и o... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.19, Volodymyr Lisivka, 01:59, 03/02/2010 [^] [ответить] [смотреть все]  
  • –1 +/
    А что с gcc gcj - GNU Compiler for Java или VMKit Чем не подходят ... весь текст скрыт [показать]
     
     
  • 4.65, Mna, 19:01, 04/02/2010 [^] [ответить] [смотреть все]  
  • +/
    gcj - на моих мелких тестах был втрое медленнее, чем оригинальная Sun-овская Jav... весь текст скрыт [показать]
     
     
  • 5.72, Карбофос, 15:36, 07/02/2010 [^] [ответить] [смотреть все]  
  • +/
    pagefault обычно возникают при пересечении границ памяти чем корявее работа с д... весь текст скрыт [показать]
     
     
  • 6.73, Mna, 03:40, 08/02/2010 [^] [ответить] [смотреть все]  
  • +/
    Тестовая программка оформлена как берущая вход со stdin, и выдающая в stdout Кр... весь текст скрыт [показать]
     
     
  • 7.74, Карбофос, 08:49, 08/02/2010 [^] [ответить] [смотреть все]  
  • +/
    чисто технически, если это большой екзешник, то и делает он много если работа с... весь текст скрыт [показать]
     
  • 3.20, evgeny_t, 02:05, 03/02/2010 [^] [ответить] [смотреть все]  
  • –1 +/
    уже есть )
    http://www.excelsior-usa.com/jet.html

    только он не нужен )

     
     
  • 4.66, Mna, 19:08, 04/02/2010 [^] [ответить] [смотреть все]  
  • +/
    1 Есть коммерческий и с закрытыми исходниками Были б были открытые я бы кое-чт... весь текст скрыт [показать]
     
  • 3.30, Чорная дипрессия 666, 10:15, 03/02/2010 [^] [ответить] [смотреть все]  
  • –1 +/
    Есть Pyrex и Cython, правда не в C , а в обычный си Опять же, никому не нужно ... весь текст скрыт [показать]
     
     
  • 4.67, Mna, 20:31, 04/02/2010 [^] [ответить] [смотреть все]  
  • +/
    Насколько я помню, в них обоих, в скомпилированной программе, все равно есть пит... весь текст скрыт [показать]
     
  • 1.18, аноним, 01:38, 03/02/2010 [ответить] [смотреть все]  
  • –1 +/
    >HipHop трансформирует код PHP скриптов в высоко оптимизированное представление на языке C++
    >принципиальное отсутствие поддержки некоторых PHP конструкций, таких как eval()

    другими словами, патчей для оригинальной реализации не дождёмся. ценность для индустрии ноль целых ноль десятых

     
     
  • 2.26, pro100master, 09:46, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    вообще-то они сотрудничают с зенд-коре тим Так что полюбому не пустая трата вре... весь текст скрыт [показать] [показать ветку]
     
  • 2.31, Чорная дипрессия 666, 10:16, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Патчей для оригинальной реализации Так это метакомпилятор, это другое совсем Э... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.51, аноним, 18:54, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    напомню фразу из статьи ... весь текст скрыт [показать]
     
  • 1.27, Below, 10:05, 03/02/2010 [ответить] [смотреть все]  
  • –1 +/
    >По заявлению разработчиков использование HipHop позволяет уменьшить нагрузку на CPU примерно на 50%.

    Только вот ведь недавно говорили что на 80%)

     
     
  • 2.34, Aleksey, 12:10, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    50 тоже очень не мало Тут я думаю все зависит от специфики оптимизированного ко... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.57, Below, 22:31, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    Дело не в том много или мало, а в том насколько достоверны данные, которые так б... весь текст скрыт [показать]
     
  • 1.35, Аноним, 12:58, 03/02/2010 [ответить] [смотреть все]  
  • +/
    Кому-нибудь удалось найти исходники? Очень очень хочеться посмотреть !!!
     
     
  • 2.36, be_nt_all, 13:08, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Их девять утра это по-ходу ближе к вечеру будет А github они уже зарегистрирова... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.37, Cobold, 13:20, 03/02/2010 [^] [ответить] [смотреть все]  
  • –1 +/
    Ага, я с Roadsend как-то полгода назад баловался, тестировал - в большинстве слу... весь текст скрыт [показать]
     
     
  • 4.41, be_nt_all, 13:32, 03/02/2010 [^] [ответить] [смотреть все]  
  • –1 +/
    А ты как код гонял Если plain CGI против modphp - то результат ожидаемый А есл... весь текст скрыт [показать]
     
     
  • 5.46, Cobold, 14:12, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    cli , несколько бенчмарков на типовые операции, циклом на 10000 проходов Я не х... весь текст скрыт [показать]
     
  • 5.47, Cobold, 14:15, 03/02/2010 [^] [ответить] [смотреть все]  
  • +1 +/
    если в сети покопаться можно аналогичные результаты найти, мне просто тогда убед... весь текст скрыт [показать]
     
  • 2.40, be_nt_all, 13:29, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    upd Да, здесь де ссылок на существующие альтернативы не давали Исправляю оплош... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.43, be_nt_all, 13:46, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    upd Точнее сам phс haskell код не использует, но использует некую bison подобну... весь текст скрыт [показать]
     
     ....нить скрыта, показать (7)

  • 1.38, Аноним, 13:21, 03/02/2010 [ответить] [смотреть все]  
  • –3 +/
    вот интересно, зачем было придумывать себе трудности, а потом геройски их решать... весь текст скрыт [показать]
     
     
  • 2.44, AlexGor, 13:54, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    да вы что, это же нужно думать перед тем, как начинать делать человекам в целом... весь текст скрыт [показать] [показать ветку]
     
  • 2.49, szh, 16:06, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    им надо было выйти на рынок как можно быстрее а лучше еще быстрее чем можно, а н... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.50, AlexGor, 17:30, 03/02/2010 [^] [ответить] [смотреть все]  
  • +1 +/
    facebook начинался как студенческое поделие, отсюда и похапе рынки тут не при ч... весь текст скрыт [показать]
     
     
  • 4.52, аноним, 18:58, 03/02/2010 [^] [ответить] [смотреть все]  
  • +/
    даконечно начинали как студенческий сайтег и через несколько лет отгрохали дата... весь текст скрыт [показать]
     
     
  • 5.60, AlexGor, 09:41, 04/02/2010 [^] [ответить] [смотреть все]  
  • +/
    разумеется рост социальной сети - вещь совершенно не прогнозируемая не блин, н... весь текст скрыт [показать]
     
  • 2.53, Warhead Wardick, 19:33, 03/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Оно бы да - надо Да только что же поделаешь если кто то _уже_ написал код котор... весь текст скрыт [показать] [показать ветку]
     
     ....нить скрыта, показать (6)

  • 1.58, Аноним, 00:07, 04/02/2010 [ответить] [смотреть все]  
  • +/
    4 февраля, ХипХопа никто не видел. На GitHub пусто.
     
     
  • 2.59, Diogene the Open Source programmer, 01:01, 04/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >4 февраля, ХипХопа никто не видел. На GitHub пусто.

    У нас ещё 3-е :)

     
  • 1.63, Vaso Petrovich, 17:41, 04/02/2010 [ответить] [смотреть все]  
  • +/
    Поправьте новость, ничего они не открывали, не колумбы все же... Ведь скачать ничего нельзя, а значить это брехня....
     
  • 1.75, Аноним, 12:54, 08/02/2010 [ответить] [смотреть все]  
  • +/
    8 февраля и опять ничего :)
     
     
  • 2.76, Mna, 03:15, 09/02/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    выпустили README This is a placeholder file это они об этом самом Readme md a... весь текст скрыт [показать] [показать ветку]
     
  • 1.77, Mna, 21:52, 20/02/2010 [ответить] [смотреть все]  
  • +/
    Наконец вчера открыли.

    лежит тут:
    http://github.com/facebook/hiphop-php

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor