0Pricing
PHP Academy · Lektion

PHP mit Xdebug profilieren

Aktivieren Sie das Xdebug-Profiling und analysieren Sie die callgrind-Ausgabe, um langsame Funktionen zu finden.

PHP mit Xdebug profilieren ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Xdebug?

Xdebug ist eine PHP-Erweiterung, die Funktionen zum Debuggen, zur Codeabdeckung und zum Profiling bereitstellt. Der Profiler zeichnet auf, wie lange jeder Funktionsaufruf dauert und wie oft er ausgeführt wird.

Xdebug installieren

Installieren Sie Xdebug über PECL oder einen Paketmanager.

# Via PECL:
$ pecl install xdebug
# Via apt:
$ apt install php-xdebug
# Verify:
$ php -v | grep Xdebug

Profiler aktivieren

Konfigurieren Sie Xdebug in php.ini, um das Profiling zu aktivieren.

# php.ini
[xdebug]
zend_extension=xdebug.so
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
xdebug.profiler_output_name=cachegrind.out.%t

Profiling per Trigger

Profilen Sie nicht jede Anfrage, sondern verwenden Sie einen Trigger, um das Profiling bei Bedarf zu starten.

# php.ini
xdebug.mode=profile
xdebug.start_with_request=trigger

# Trigger via query parameter or cookie:
curl "https://example.com/?XDEBUG_PROFILE=1"

Callgrind-Ausgabe

Xdebug schreibt eine Datei mit dem Namen cachegrind.out.*. Dieses Format wird von Profiling-Visualisierern eingelesen.

Analyse mit KCachegrind / QCachegrind

Öffnen Sie die Callgrind-Datei in KCachegrind (Linux) oder QCachegrind (macOS/Windows), um Folgendes zu sehen: Anzahl der Funktionsaufrufe, Gesamtzeit, Eigenzeit und den Aufrufbaum.

Analyse mit WebGrind

WebGrind ist ein browserbasierter Callgrind-Viewer und lässt sich einfacher einrichten als ein Desktop-Tool.

$ docker run -p 8080:80 jokkedk/webgrind -v /tmp/xdebug:/tmp

Profiler-Ausgabe lesen

Achten Sie auf Funktionen mit den höchsten Werten für „Inclusive Cost“ (Gesamtzeit einschließlich aufgerufener Funktionen) und „Self Cost“ (Zeit ausschließlich im Funktionskörper). Der Self Cost zeigt den tatsächlichen Engpass.

Häufig gefundene Engpässe

Typische Ergebnisse sind N+1-Datenbankabfragen, ineffiziente reguläre Ausdrücke, redundante API-Aufrufe, nicht optimierte Eloquent-Beziehungen und aufwendiges Rendern von Ansichten.

Profiling im Vergleich zum Debugging

Profiling misst die Leistung (Zeit und Anzahl der Aufrufe). Beim Debugging, das ebenfalls zu den Xdebug-Funktionen gehört, wird die Ausführung an Haltepunkten angehalten, um den Code zu untersuchen. Verwenden Sie dafür separate Xdebug-Modi.

Blackfire als Alternative

Blackfire.io ist ein kommerzielles Profiling-Tool mit einer ausgereiften Benutzeroberfläche, CI-Integration und Performance-Assertions. In Teamumgebungen wird es dem direkten Xdebug-Profiling vorgezogen.

Zusammenfassung

Aktivieren Sie den Xdebug-Profiler-Modus in php.ini, lösen Sie eine Anfrage aus und öffnen Sie die Callgrind-Datei in KCachegrind oder WebGrind. Konzentrieren Sie sich auf Funktionen mit den höchsten Werten für Inclusive Cost und Self Cost, um Engpässe zu finden.

Kurze Überprüfung

Was bedeutet „Self Cost“ in einem Profiler-Bericht?

Häufig gestellte Fragen

Ist die Lektion „PHP mit Xdebug profilieren“ kostenlos?

Ja — der vollständige Text von „PHP mit Xdebug profilieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „PHP mit Xdebug profilieren“?

Aktivieren Sie das Xdebug-Profiling und analysieren Sie die callgrind-Ausgabe, um langsame Funktionen zu finden. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um PHP Academy zu starten?

Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „PHP mit Xdebug profilieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?

Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. PHP mit Xdebug profilieren
  2. OPcache: Bytecode-Caching
  3. Datenbankabfragen optimieren
  4. Speicherverwaltung und Performance-Tipps
← Zurück zu PHP Academy