senn-techsenn-techde
Back to blog
Web Development2024-11-15

PHP 8 Performance: spürbare Geschwindigkeitssteigerung erreichen

PHP 8 brachte echte Sprünge bei Performance und Entwicklerproduktivität. Aber die Defaults holen das Potenzial nicht heraus. Mit der richtigen Konfiguration lassen sich bei rechenintensiven Workloads regelmäßig deutliche Steigerungen erreichen — ganz ohne Umbau der Anwendung.

JIT richtig nutzen

Der Just-In-Time-Compiler ist das Killer-Feature von PHP 8. Falsch konfiguriert kann er die Performance aber sogar verschlechtern.

; php.ini — sinnvolle Defaults
opcache.enable=1
opcache.jit_buffer_size=256M
opcache.jit=1235        ; tracing JIT, gut für CPU-lastige Logik
; opcache.jit=1254      ; für Web-Apps mit vielen Function Calls

JIT bringt am meisten bei rechenintensivem Code — Bildverarbeitung, Berechnungen, Parsing. Bei klassischen I/O-gebundenen Web-Requests ist der Effekt kleiner; dort zählt OPcache mehr.

OPcache & Preloading

opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0   ; in Produktion: Cache nicht ständig prüfen
opcache.preload=/var/www/preload.php

Preloading lädt Framework-Klassen einmal beim Start in den Speicher — jeder Request startet damit bereits "warm".

Messen statt raten

Jede Optimierung gehört verifiziert. Ein einfacher Benchmark zeigt, ob die JIT-Einstellung für den konkreten Workload etwas bringt:

$start = hrtime(true);
// ... Workload ...
printf("%.2f ms\n", (hrtime(true) - $start) / 1e6);

Die Regel bleibt: erst messen, dann konfigurieren, dann erneut messen. Pauschale "Speed-Tipps" aus dem Internet schaden öfter, als sie helfen.