Facebook hoopt PHP te revolutioniseren met Hip Hop

Weinig wisten we dat Facebook de afgelopen zes maanden gebruik heeft gemaakt van een aangepaste compiler voor PHP die ze 'Hip Hop' noemen. In wezen heeft het je PHP-broncode nodig, en converteert het naar C ++, en wordt het vervolgens gecompileerd met G ++. Als gevolg hiervan zijn ze erin geslaagd hun CPU-gebruik met 50% te verminderen. Dit project is blijkbaar de afgelopen twee jaar in ontwikkeling geweest, maar is pas vandaag vrijgegeven aan de gemeenschap.

"HipHop voor PHP is technisch gezien geen compiler zelf, maar een broncodetransformator.HhipHop transformeert uw PHP-broncode programmatisch in zeer geoptimaliseerde C ++ en gebruikt vervolgens g ++ om het te compileren. HipHop voert de broncode op een semantisch equivalente manier uit en offert een aantal zelden gebruikte functies - zoals eval () - in ruil voor betere prestaties.HhipHop bevat een codetransformator, een herimplementatie van PHP's runtime-systeem en een herschrijving van veel voorkomende PHP-extensies om te profiteren van deze prestatie-optimalisaties. "

De aankondiging

"Het verkleinen van Facebook is bijzonder uitdagend, omdat bijna elke paginaweergave een ingelogde gebruiker met een aangepaste ervaring is.Wanneer u uw startpagina bekijkt, moeten we al uw vrienden opzoeken, hun meest relevante updates opvragen (van een aangepaste service die we hebben ' heb gebouwd met de naam Multifeed), filter de resultaten op basis van je privacy-instellingen en vul de verhalen in met opmerkingen, foto's, vind-ik-leuks en alle rijke gegevens die mensen leuk vinden over Facebook. Dit alles in iets minder dan een seconde. om de logica te schrijven die de uiteindelijke paginasamenstelling in PHP doet en deze snel te herhalen terwijl ze vertrouwt op aangepaste back-endservices in C ++, Erlang, Java of Python voor het onderhouden van de nieuwsfeed, zoeken, chatten en andere kerngedeelten van de site ."

De problemen Facebook geconfronteerd met PHP

  • Kan PHP-logica niet in andere systemen hergebruiken
  • Extensies zijn moeilijker te schrijven voor PHP-ontwikkelaars
  • Hoog CPU-gebruik; kan niet zo efficiënt zijn als iets als C++
  • Volledig onpraktisch om Facebook volledig te herschrijven met een nieuwe taal

Hoe ze het verbeterden

  • Het is een broncodetransformator
  • Transformeert PHP naar geoptimaliseerde C ++, vervolgens gecompileerd met G++
  • Is al meer dan twee jaar in ontwikkeling.
  • Als je de afgelopen zes maanden Facebook hebt gebruikt, heb je Hip Hop
  • Facebook-team heeft een afname van 50% in CPU-gebruik geregistreerd.
  • Ze zullen toegewijde evangelisten hebben om te helpen bij het trainen / vertrouwd maken van de gemeenschap met Hip Hop
  • Als je met Apache op een gedeelde host werkt, wil je waarschijnlijk standaard PHP blijven gebruiken
  • Waar kunnen we ermee beginnen spelen?

    Hip Hop is nu beschikbaar en wordt gehost op Github. Je kunt het hier downloaden.

    • Volg ons op Twitter of abonneer je op de Nettuts + RSS Feed voor de beste tutorials voor webontwikkeling op internet.