Menü
Developer

Facebook will PHP beschleunigen

Von
vorlesen Drucken Kommentare lesen 228 Beiträge

Entwickler bei Facebook haben mit HipHop for PHP einen Code-Transformer veröffentlicht, der PHP-Sourcecode in C++-Code umwandelt und für die Kompilierung den GNU-C++-Compiler g++ nutzt. Ziel des Projekts ist die Reduzierung der CPU-Ausnutzung auf den Facebook-Webservern um etwa die Hälfte, berichtet Haiping Zhao, einer der Beteiligten an der Entwicklung von HipHop. Facebook habe vor sechs Monaten angefangen, HipHop einzusetzen; zurzeit läuft die Technik auf 90 Prozent der Server im Produktiveinsatz.

PHP biete wie die Skriptsprachen Perl, Python und Ruby einiges, um die Produktivität zu steigern, es sei aber wie die anderen Skriptsprachen hinsichtlich der CPU- und Speicherausnutzung nicht effizient, schätzt Facebooks Senior Server Engineer die Lage ein. Sein Unternehmen steht jeden Monat vor der Anforderung, 400 Milliarden Seitenaufrufe von in PHP geschriebenen Seiten performant laufen zu lassen. Im Bewusstsein, die Serverarchitektur überarbeiten zu müssen, um skalierbarer zu sein, hatte Facebook vor zwei Jahren das Projekt gestartet.

HipHop ist kein Compiler, beschreibt Zhao die Technik. Sie besteht aus einem Codeumwandler, einer Neuimplementierung der PHP-Runtime und neu geschriebenen PHP-Komponenten von verbreiteten Erweiterungen, mit denen sich die Performance anheben lässt. HipHop überführt den Sourcecode in eine semantisch gleiche Form und opfert einige weniger genutzte Funktionen wie eval(), um dafür ein besseres Verhalten zu bekommen. Die Technik stellt Facebook als Open Source unter der PHP Licence bei Github zu Verfügung. Allerdings sind bislang weder der Code noch ein angekündigtes Wiki erreichbar.

Für die Zukunft haben sich die Facebook-Techniker Unterstützung für das aktuelle PHP 5.3 auf die Fahne geschrieben und dass sich der Apache optional als Webserver nutzen lassen soll. Auch wollen sie die Basis dafür legen, dass HipHop auch außerhalb des Social Network zum Einsatz kommt. Facebook sieht seine Technik nicht als PHP-Fork (Abspaltung), da nur ein sehr geringer Anteil an PHP-Anwendern dafür Verwendung finden wird, nämlich die, die wie Facebook große und viel genutzte Webseiten betreiben. (ane)