Login
Newsletter
Werbung

Mo, 12. Dezember 2011, 18:02

Software::Entwicklung

Facebook veröffentlicht HipHop Virtual Machine

Entwickler von Facebook haben den PHP-Compiler HipHop zu einer virtuellen Maschine erweitert, die PHP auch ohne Compilierung schneller ausführt als der originale PHP-Interpreter.

Um die Geschwindigkeit seiner PHP-Anwendungen zu steigern, hatte Facebook schon vor zwei Jahren den Compiler HipHop entwickelt und Anfang 2010 unter eine freie Lizenz gestellt. Genau genommen ist HipHop kein Compiler, zumindest kein vollständiger. Er enthält eine Reimplementierung des PHP-Laufzeit-Systems und einiger PHP-Erweiterungen und übersetzt PHP-Code in optimierten C++-Code, der anschließend mit g++ übersetzt werden kann. Nicht jedes PHP-Programm wird dem zufolge von HipHop akzeptiert.

Der Pferdefuß von HipHop war jedoch genau diese Compilierung. Sie machte nach Angaben der Entwickler die Optimierung des Codes zeitaufwendig. Um PHP ohne Compilierung einsetzen zu können, hatten sie zudem einen HipHop-Interpreter (hphpi) entwickelt, dessen Wartung allmählich zu aufwendig wurde. Die Lösung ist die neue HipHop Virtual Machine (hhvm), die PHP dynamisch, also bei Bedarf, in Maschinencode übersetzt und damit anderen Just-in-Time-Compilern ähnelt. Während Java und C++ aber immer eine Methode auf einmal compilieren, verfolgt hhvm den Ansatz von Traces, bei dem ein Codeblock mit bekannten Eingabetypen compiliert wird.

Der Bytecode der virtuellen Maschine steht Interessenten zur Ansicht bereit. Erste Benchmarks zeigen, dass hhvm als Interpreter schon jetzt, noch ein Stück von der Fertigstellung entfernt, 1,6 mal so schnell wie der HipHop-Interpreter ist. Was sich unbedeutend anhört, ist für viele Facebook-Entwickler, die den ganzen Tag damit arbeiten, bereits ein deutlicher Fortschritt. Mit dem Übergang zu dem Trace-basierten Translator erwarten die Entwickler eine weitere Verbesserung. Letztlich soll hhvm kaum langsamer sein als der HipHop-Compiler, der gegenüber interpretiertem PHP etwa fünfmal schneller ist.

HipHop und hhvm sind auf der GitHub-Seite des Projektes unter der PHP-Lizenz verfügbar.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung