c't 16/2022
S. 124
Wissen
PHP beschleunigen
Bild: Thorsten Hübner

Elefantenrennen

Open Swoole: Schnelle Webanwendungen trotz PHP

PHP-Anwendungen laufen traditionell auf Webservern wie Apache, Nginx oder IIS. Im Vergleich zu anderen Programmiersprachen gilt PHP eher als träge. Doch für schnelle Webanwendungen muss man nicht gleich die Programmiersprache wechseln: So bringen Sie mit Open Swoole Ihre PHP-Anwendung in Schwung.

Von Jan Mahn

Das PHP-Maskottchen, ein blauer Elefant, sei nicht zufällig gewählt, witzeln PHP-Kritiker seit Jahrzehnten. PHP gilt als Elefant im Webentwicklungsladen: Schwerfällig und ressourcengefräßig trotte der Dickhäuter umher, für schnelle Seitenauslieferungen müsse man schon zu Node.js oder kompilierenden Programmiersprachen wechseln. Doch gleichzeitig ist PHP verbreitet und populär: Fertige Anwendungen wie Nextcloud, WordPress und Magento sind in PHP verfasst und in Frameworks wie Symfony und Laravel entstehen neue und zeitgemäße Projekte. PHP ist schnell zu lernen, hat in den letzten Jahren viele moderne Sprachkonstrukte bekommen und vor allem findet man leicht Hilfe, weil die Community so groß ist. Gute Voraussetzungen für einen anhaltenden Erfolg also, wäre da nicht diese Trägheit. Schnarchige Seiten nerven die Nutzer und kosten Onlinehändler viel Geld – nur zwei Klicks weiter und der potenzielle Kunde ist bei einem fixeren Shop.

Ist PHP also die falsche Wahl, wenn man Wert auf Geschwindigkeit legt? Nein, liest man in PHP-Entwicklerkreisen seit Kurzem vereinzelt. Es liege gar nicht an der Sprache selbst, sondern an der Art, wie Webserver arbeiten: Eine Anfrage für die Seite /index.php kommt beim Webserver an. Der Server holt das Dokument aus dem Webverzeichnis seiner Festplatte und entscheidet anhand der Endung: Diese Datei übergebe ich mal dem PHP-Interpreter, der den Code ausführt und die Ergebnisse zurückreicht. An den Schnittstellen zwischen Webserver und Interpreter wurde in den letzten Jahrzehnten gefeilt, mit PHP-FPM (dem FastCGI-Process-Manager) hält man zum Beispiel einen Bestand an ständig laufenden Interpretern im Speicher, damit nicht auch noch die Zeit zum Starten von PHP auf die Wartezeit obendrauf kommt.

Kommentare lesen (1 Beitrag)