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 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 . "
Hip Hop ist ab sofort verfügbar und wird auf Github gehostet. Sie können es hier herunterladen.