Original-URL des Artikels: https://www.golem.de/1112/88335.html    Veröffentlicht: 10.12.2011 10:26    Kurz-URL: https://glm.io/88335

Hiphop Virtual Machine

Facebook entwickelt JIT-Compiler für PHP

Facebook hat mit der Hiphop Virtual Machine und Hiphop Bytecode einen JIT-Compiler für PHP entwickelt, der bei Facebook bereits im Einsatz ist. Die Lösung soll die Vorteile statisch kompilierten Codes mit denen eines Interpreters vereinen.

Anfang 2010 hatte Facebook sein Projekt Hiphop vorgestellt, das mit dem Hiphop Compiler PHP-Code in C++ und letztendlich in nativen Code umwandelt, was die Ausführungsgeschwindigkeit des Codes deutlich steigert. Damit die Entwickler ihren Code nicht für jede Änderung neu kompilieren müssen, hatte Facebook zusätzlich den Hiphop Interpreter entwickelt, der aber zusätzlichen Pflegeaufwand verursacht.

Mit dem Ziel, Compiler und Interpreter wieder zu vereinen, hat Facebook im vergangenen Jahr begonnen, sich mit der dynamischen Übersetzung von PHP-Code in nativen Code zu beschäftigen. Das Ergebnis ist eine neue PHP-Execution-Engine, die auf der Hiphop Language Runtime basiert. Sie wird Hiphop Virtual Machine (hhvm) genannt.

Die Hiphop Virtual Machine wandelt PHP-Code in Bytecode um und nutzt dazu Teile des Hiphop Compilers. Der Bytecode wird dann von Hiphop Bytecode (HHBC) ausgeführt. Dabei nutzt Facebook eine sehr einfache Form von Tracing, das nur auf einzelne Blöcke angewendet wird.

Im Vergleich zum Hiphop Interpreter ist die Hiphop Virtual Machine in einem Facebook-spezifischen Benchmark rund 60 Prozent schneller. Ein Vergleich mit dem Hiphop Compiler sei hingegen schwierig. Facebook geht aber davon aus, dass die Ergebnisse der Hiphop Virtual Machine näher an denen des Hiphop Compilers liegen als an denen des Hiphop Interpreter. Der Compiler ist rund fünfmal schneller als der Interpreter.

Für Facebook bedeutet das schnellere Entwicklungszyklen, da sich Code mit der neuen Hiphop Virtual Maschine schneller testen lässt als mit dem Hiphop Interpreter. Zudem gehen die Facebook-Entwickler davon aus, die Geschwindigkeit der Hiphop Virtual Machine in den nächsten Monaten weiter erhöhen zu können, so dass die Ergebnisse des neuen Ansatzes dank Tracing bald schneller laufen als der vom Hiphop Compiler erstellte Code.

Der Code der Hiphop Virtual Machine ist eng mit dem Hiphop-Quellcode verzahnt, den Facebook per Github als Open Source zur Verfügung stellt.  (ji)


Verwandte Artikel:
HipHop - Facebook beschleunigt PHP   
(03.02.2010, https://glm.io/72842 )
HHVM: Facebook konzentriert sich künftig auf Hack statt PHP   
(19.09.2017, https://glm.io/130140 )
Vergleichstest: Mini-MP3-CD-Spieler von Waitec und Freecom   
(28.03.2002, https://glm.io/19082 )

© 1997–2019 Golem.de, https://www.golem.de/