Facebook hat ein internes Tool für Entwickler vorgestellt, mit dem es seinen Programmierern gelungen ist, die Site zu beschleunigen: HipHop for PHP. Es wandelt PHP-Code in C++-Code um, der mit dem GNU-Compiler g++ kompiliert werden kann. Facebook will es jetzt unter der Open Source PHP License veröffentlichen.
Wie Haiping Zhao im Facebook-Developer-Blog schreibt, hat das Werkzeug seine Ursprünge im Programmierwettbewerb Hackathon von vor einigen Jahren. Mittlerweile ist es auf über 300.000 Zeilen Code angewachsen und hat 5000 Testläufe hinter sich.
Facebooks Website war ursprünglich in der Skriptsprache PHP geschrieben. PHP ist leicht zu verstehen und zu schreiben, aber langsamer als kompilierte Sprachen wie C++ oder Zwischencode-Sprachen wie Java. Um die Performance zu verbessern, führte man PHP-Erweiterungen in C++ ein. Die Anforderungen an Programmierer sind hier aber ungleich größer: Sie müssen nicht nur C++, sondern auch die nötigen APIs der Entwicklungsumgebung Zend gut kennen. Das erschwert Wartungsarbeiten am Code massiv.
Aus diesem Dilemma ist Haiping zufolge HipHop for PHP hervorgegangen, das die Lücke zwischen PHP und C++ schließt. Dem Facebook-Programmierer zufolge senkt der Einsatz von HipHop die Serverlast um durchschnittlich etwa 50 Prozent, weshalb weniger Server-CPUs angeschafft werden müssten. HipHop-Code mache über 90 Prozent von Facebooks Traffic aus.
HipHop produziert Haiping zufolge hoch optimierten C++-Code: So werde aus dem PHP-Code der Typ von Variablen möglichst genau erschlossen, um Speicherplatz zu sparen. Der eigentlichen Code-Erstellung, die recht direkt erfolge, gehe eine statische Analyse von Abhängigkeiten und Deklarationen voraus.
Als Nebenprodukt hat Facebook ergänzend HPHPi erstellt, einen experimentellen Interpreter für die Entwicklung. Er mache es überflüssig, PHP-Code zwischendurch immer wieder zu kompilieren, und helfe, Fehler in HipHop selbst zu finden. Außerdem verzichte man auf einige selten genutzte Features wie eval().
Neueste Kommentare
Noch keine Kommentare zu Facebook-Tool HipHop wandelt PHP-Code in C++ um
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.