Suchen

JIT-Engine, Multithreading und Performance Was Entwickler von PHP 8 erwarten dürfen

Autor / Redakteur: Christian Rentrop / Stephan Augsten

Die Major-Versionen der Skriptsprache PHP lassen sich üblicherweise Zeit – wann PHP 8 erscheint, steht noch in den Sternen. Mit dem Release von PHP 7.2 im November 2017 ist jedoch eine Einführung absehbar. Doch was wird PHP 8 leisten?

Firmen zum Thema

Das Major Release PHP 8 wird noch etwas Zeit in Anspruch nehmen, bis dahin müssen wir uns mit inoffiziellen Ankündigungen und Gerüchten begnügen.
Das Major Release PHP 8 wird noch etwas Zeit in Anspruch nehmen, bis dahin müssen wir uns mit inoffiziellen Ankündigungen und Gerüchten begnügen.
(Bild: alekseynemiro - Pixabay.com / CC0 )

PHP ist über zwei Dekaden alt – und trotzdem erst im November 2017 bei Version 7.2 angekommen: Die Skriptsprache entwickelt sich gemächlich, was für Webentwickler ein zweischneidiges Schwert ist.

Einerseits müssen sie sich dadurch nicht ständig mit neuen Befehlen und Funktionen herumschlagen und auch nicht unnötig häufig Websites und -anwendungen debuggen und updaten. Auf der anderen Seite lassen lang vermisste Möglichkeiten der Skriptsprache dadurch ausgesprochen lange auf sich warten und müssen gegebenenfalls mit Workarounds über andere Skriptsprachen ergänzt werden.

PHP 8 soll hier einige Vorteile bringen. Auch wenn nach wie vor nicht klar ist, wann das neue Major-Release wirklich erscheint, haben wir einige der bereits angekündigten, zu erwartenden aber auch spekulativ in der Community geäußerten Features der neuen PHP-Version zusammengestellt.

Just-in-Time-Engine

Das wohl wichtigste und bereits bestätigte neue Feature von PHP 8 wird eine Just-in-Time-Engine sein: Dabei handelt es sich um eine technische Möglichkeit, Code trotz der Verzögerung der heutzutage üblichen virtuellen Maschinen als Server-Basis möglichst in Echtzeit (Just in Time, JIT) auszuführen.

Möglich wird das durch die JIT-Technologie, die derzeit von ZEND – bekannt für den Opcache – für die kommende PHP-Version 8 entwickelt wird (https://github.com/zendtech/php-src/tree/jit-dynasm/ext/opcache/jit). Das Problem bei JIT-Engines ist, dass diese nicht beliebig komplex sein können, da sie sonst selbst die Ausführungsgeschwindigkeit beeinträchtigen.

Reduktion als Schlüssel zur Geschwindigkeit

Um eine Echtzeitausführung zu erreichen, greift eine Just-in-Time-Engine daher typischerweise auf bestimmte, häufig verwendete Programmteile, um maximale Leistung zu erzielen. Der JIT-Compiler muss diese Programmteile identifizieren und optimieren, um sie anschließend in Maschinencode zu übersetzen. Der dabei erzeugte Code wird ähnlich einem Cache zwischengespeichert, um jederzeit wiederverwendet werden zu können.

Auf diese Weise stellt die Just-in-Time-Engine sicher, dass Code möglichst verzögerungsfrei läuft – auch auf virtuellen Maschinen. Dadurch wird PHP 8 deutlich flotter arbeiten als seine Vorgängerversionen, allerdings dürften auch die Hardware-Anforderungen für einen stabilen Betrieb wachsen.

PHP8: Verbesserter Support für asynchrone Codeausführung

Auf der Wunschliste vieler Entwickler für PHP 8 steht auch die Verbesserung der asynchronen Codeausführung. Derzeit beharrt PHP wie seit jeher auf einer synchronen Codeausführung, sprich: Der Programmcode wird Zeile für Zeile abgearbeitet und benutzt dafür die volle Systemleistung. Auf den heutzutage üblichen Multiprozessor-Systemen ist das nicht mehr sinnvoll, PHP wird damit unnötig starr und langsam.

Der Vorteil einer asynchronen Programmierung liegt auf der Hand: Durch sogenannte Threads kann die Leistung des zugrundeliegenden Systems optimaler genutzt werden. Zwar besteht derzeit die Möglichkeit, auf Projekte wie Appserver und node.js zurückzugreifen, die eine Threaded-PHP-Variante verwenden – allerdings kommt diese Option nur für Entwickler in Frage, die einen eigenen Webserver betreiben. Eine standardisierte Multithreading-Unterstützung wäre also sinnvoll und könnte in PHP 8 endlich Realität werden.

Allgemeiner Performance-Schub

Doch was wird PHP 8 noch bringen? Nun: Da gerade PHP 7.2 veröffentlicht wurde, scheint die PHP-Version noch mehrere Jahre in der Zukunft zu liegen. Mangels Roadmap sind weitere Voraussagen also eher Kaffeesatzleserei als solide Vorhersagen. Als sicher kann jedoch gelten, dass PHP 8 gegenüber PHP 7 noch einmal einen massiven Performance-Schub erhalten wird:

Zwischen PHP 5 und 7 (Version 6 fiel ja bekanntlich aus) gab es eine Leistungsverbesserung von ca. 15 Prozent, was gerade auf vielgenutzten Webservern und Web-Anwendungen deutlich höhere Effizienz bei gleichzeitiger Kostensenkung ermöglichte. Schließlich bedeutet eine Effizienzsteigerung von 15 Prozent auch, dass der Server deutlich seltener überlastet ist. Mit PHP 8 wird sich diese Entwicklung mit Sicherheit noch einmal multiplizieren.

Fazit: Große Versprechen für die Zukunft

Just-in-Time-Compiler, allgemeine Leistungssteigerungen und die mögliche Verbesserung der asynchronen Codeausführung klingen vielversprechend. Doch vorerst sollten sich Entwickler weiterhin auf die aktuelle PHP-Version 7.2 zu konzentrieren. Denn die eher geruhsame PHP-Entwicklung lässt vermuten, dass die Veröffentlichung der Major-Version PHP 8 noch mehrere Jahre in der Zukunft liegen wird. Warten wir ab, was die offizielle PHP-Entwicklung verlauten lässt.

(ID:45090199)

Über den Autor

 Christian Rentrop

Christian Rentrop

IT-Fachautor