IPC 2013

High-Performance PHP with HipHop
Kommentare

Webdienste, deren Seiten zum Großteil dynamisch erstellt werden und an mehrere Tausend oder gar Millionen Besucher ausliefern müssen, kommen früher oder später in Skalierungsnot. Der populärste Advokat dieses Problems dürfte Facebook sein. Ganz logisch, dass von dort auch mit dem HipHop-Compiler die populäre PHP-Lösung für das Problem stammt. 

Und so besuchten wir Steve Kamerman (ScientiaMobile) in seinem Vortrag zu High-Performance PHP with HipHop, wo er den Gästen der International PHP Conference zeigt, wie Facebooks alternative PHP-Laufzeitumgebung entstanden ist, was ihre Kniffe sind und was und man in Zukunft von ihr erwarten kann. 

Zunächst aber der historische Rückgriff: Facebook hatte schon im Jahr 2008 Hundert Millionen aktive Nutzer, die für die verwendeten Server Skalierungsprobleme darstellten. Und so begann man, nach einem Flaschenhals zu suchen und sah, dass PHP einen Teil seiner Leistung im Parser und Interpreter verliert. Architektonische und syntaktische Entscheidungen, die damals für PHP getroffen wurden, wie etwa dynamische Typen, helfen zwar bei der schnellen Programmierung, kosten bei der Ausführung aber mitunter viel Zeit. An solchen Stellen hat man mit HipHop angesetzt. In der ersten Iteration hieß das Tool hPHPc, später entwickelte man die HHVM.

Steve Kamerman zeigt, wie eine Infrastruktur mit HipHop aussieht und wie man von der alternativen PHP-Laufzeitumgebung profitiert.

Letztere ist ein multithreaded Server mit integrierter PHP-Laufzeitumgebung. Im Gegensatz zu hPHPc ist HHVM eine Virtual Machine mit JIT-Compiler. Vor dem Release der VM standen zwischen PHP und HipHop lange Kompilationsphasen, was Deployment im Bytecode mühselig machte. Die HHVM überspringt nun dieses Problem. Ein weiteres Gimmick ist, dass die HHVM den Bytecode vorhält, auch wenn der Server neustartet. Dieser Cache reduziert mit der Laufzeit den Rechenaufwand und steigert allmählich die Leistung. Er muss jedoch manuell gelöscht werden, da er davon ausgeht, dass sich im PHP-Code nichts geändert hat. 

Nun, die HHVM ist schon schnell und einfacher zu deployen. Wo ist also der Haken? Tja, die HHVM ist nicht komplett sprachkompatibel mit PHP, sodass man den Code seiner App nach wie vor anpassen muss. Insbesonderer Type Inference sorgt für Errors, sodass PHPs laxer Umgang mit Typen umschifft werden muss. Auch dynamische Konstanten sind ein weiterer Stolperstein für den JIT-Compiler. Aber daran wollen viele arbeiten – nicht nur Facebook. 

HipHop ist nah angelehnt an PHP 5.4. Es gibt außerdem zahlreiche Erweiterungen dafür. Das derzeitige Ziel ist, existierende PHP-Projekte wie Drupal in der HHVM ausführen zu können. Derzeit strudeln täglich rund 60 Commits im öffentlichen GitHub Repository ein. Das Projekt steht unter PHP-Lizenz, was Kamerman großes Vertrauen in das Projekt gibt. 

Während in den derzeitigen Versionen die Einrichtung de eigenen Systems für die HHVM noch recht kompliziert ausfällt, empfiehlt der Speaker für den schnellen Geschwindigkeitsboost PHP 5.5 mit seinem Opcache. Denn schon dort hat er massive Schübe beobachten können, während man im Code viel weniger Anpassungen vornehmen muss. Wer also auf Nummer sicher gehen will, der lässt in seinem Produktivsystem noch die Finger von der HHVM. 

Wer mehr Details aus dem Vortrag erfahren möchte, dem werden diese und viele weitere Session-Aufzeichnungen schon bald zur Verfügung gestellt werden. 

Verpasst auch nicht das Interview, das wir im Anschluss mit Steve Kamerman geführt haben.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -