Facebook hofft, PHP mit Hip Hop zu revolutionieren

Wir wussten nicht, dass Facebook in den letzten sechs Monaten einen benutzerdefinierten Compiler für PHP verwendet hat, den sie als "Hip Hop" bezeichnen. Im Wesentlichen nimmt es Ihren PHP-Quellcode, konvertiert ihn in C ++ und wird dann mit G ++ kompiliert. Infolgedessen ist es ihnen gelungen, die CPU-Auslastung um 50% zu reduzieren. Dieses Projekt wurde offenbar in den letzten zwei Jahren entwickelt, wurde aber erst heute für die Community freigegeben.

"HipHop für PHP ist eigentlich kein Compiler selbst. Vielmehr handelt es sich um einen Quellcode-Transformer. HipHop wandelt Ihren PHP-Quellcode programmgesteuert in hochoptimiertes C ++ um und kompiliert es mit g ++. HipHop führt den Quellcode semantisch äquivalent aus Im Gegenzug für eine verbesserte Leistung werden einige selten genutzte Funktionen wie eval () geopfert. HipHop umfasst einen Code-Transformer, eine Neuimplementierung des PHP-Laufzeitsystems und ein Umschreiben vieler gängiger PHP-Erweiterungen, um diese Leistungsoptimierungen zu nutzen. "

Die Ansage

"Die Skalierung von Facebook ist besonders schwierig, da fast jede Seitensicht ein angemeldeter Benutzer mit einer benutzerdefinierten Erfahrung ist. Wenn Sie Ihre Homepage anzeigen, müssen wir alle Ihre Freunde suchen und ihre relevantesten Updates abfragen (von einem benutzerdefinierten Dienst ' (genannt Multifeed), filtern Sie die Ergebnisse anhand Ihrer Datenschutzeinstellungen und füllen Sie die Storys mit Kommentaren, Fotos, Likes und all den umfangreichen Daten aus, die die Menschen an Facebook lieben, und das alles in weniger als einer Sekunde. HipHop erlaubt es uns Schreiben Sie die Logik, mit der die letzte Seitenassemblierung in PHP ausgeführt wird, und führen Sie eine schnelle Iteration durch, während Sie sich auf benutzerdefinierte Backend-Services in C ++, Erlang, Java oder Python verlassen, um den Newsfeed, die Suche, den Chat und andere Kernbereiche der Website zu bedienen . "

Die Probleme, die Facebook mit PHP hatte

  • PHP-Logik kann nicht in anderen Systemen verwendet werden
  • Erweiterungen sind für PHP-Entwickler schwieriger zu schreiben
  • Hohe CPU-Auslastung; kann nicht so effizient wie C sein++
  • Völlig unpraktisch, Facebook komplett mit einer neuen Sprache zu überschreiben

Wie sie es verbessert haben

  • Es ist ein Quellcode-Transformator
  • Verwandelt PHP in optimiertes C ++ und kompiliert es anschließend mit G++
  • Ist seit über zwei Jahren in der Entwicklung.
  • Wenn Sie Facebook in den letzten sechs Monaten verwendet haben, haben Sie Hip Hop erlebt
  • Das Facebook-Team verzeichnete einen Rückgang der CPU-Auslastung um 50%.
  • Sie werden engagierte Evangelisten haben, die helfen, die Community mit Hip Hop vertraut zu machen
  • Wenn Sie sich mit Apache auf einem gemeinsam genutzten Host befinden, möchten Sie wahrscheinlich weiterhin Standard-PHP verwenden
  • Wo können wir damit anfangen zu spielen?

    Hip Hop ist ab sofort verfügbar und wird auf Github gehostet. Sie können es hier herunterladen.

    • Folgen Sie uns auf Twitter oder abonnieren Sie den Nettuts + RSS-Feed für die besten Webentwicklungs-Tutorials im Web.