Profiling und Leistung
Diese Seite richtet sich an Anwendungsentwickler, die Code schneller machen. Messen, eine Sache ändern, erneut messen (Benchmarking, Benchmark-Referenz).
Inhalt
Seiten messen
php bin/php/console exp:benchmark --save=var/benchmark/base.json --allow-root-user
# change something
php bin/php/console exp:benchmark --baseline=var/benchmark/base.json --threshold=15 --allow-root-user
php bin/php/console exp:benchmark --cold --requests=50 --allow-root-user # past the response cachesDer Befehl ruft die Startseite, Menüseiten, die Suche und die Anmeldung der Administration nach dem Aufwärmen jeweils 100-mal ab und gibt Median, p90, p99 und weitere Werte aus.
Innerhalb einer Anfrage
exp:benchmark kernel --repeat=30misst im selben Prozess den Start, das Rendern (kalt und warm), das Laden der INI, einen Inhaltsabruf, einen Datenbank-Roundtrip sowie Schreib- und Lesevorgänge im Cache.exp:benchmark micromisst reine PHP-Hotpaths ohne HTTP und ohne Datenbank.- Die Debug-Leiste zeigt für jede Anfrage die SQL-Abfragen, Templates und Zeiten (Exp-Debug-Leiste).
- Unter Velocity zeigt das Profil des Opcode-Caches, warum eine Seite so viel kostet, wie sie kostet (Velocity und der Opcode-Cache).
Fair vergleichen
Dieselbe Maschine, nichts anderes läuft, OPcache wie in der Produktion, Xdebug aus, und beurteilen Sie zwei Server nur anhand von Läufen, die direkt nacheinander gemacht wurden. Jeder Lauf zeichnet seine Umgebung auf, und ein Vergleich mit einer Baseline aus einer anderen Umgebung weist darauf hin.
Die üblichen Ursachen
| Symptom | Ursache | Abhilfe |
|---|---|---|
| Viele Abfragen pro Seite | Abrufe in Schleifen, load_data_map bei Listen | einmal abrufen, begrenzen, Cache-Block |
| Langsamer erster Aufruf nach dem Deployment | Caches geleert | aufwärmen (php bin/php/warm.php) |
| Langsam unter Velocity nach einer Änderung | Worker nicht neu gestartet oder OPcache prüft nicht neu | exp:velocity deploy |
| Langsames Veröffentlichen | aufwendige Arbeit in Workflows oder Listenern | in eine Warteschlange verlagern |
| Langsame Listen in der Administration | unbegrenzte Zählungen | seitenweise Abfragen |
Verwandte Seiten
- Anwendungen skalieren
- Caching in Anwendungen
- Leistung und Caching
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.