PHP-Scripts mit Xdebug profilen

Einleitung: Xdebug: Documentation » Profiling

Hierzu muss man PHP Xdebug auf seinem System installiert haben. Anschliessend lässt man ein PHP-Script folgendermassen laufen:

$ php -d xdebug.profiler_enable=On index.php

Nachdem das Script durchgelaufen ist, findet sich unter /tmp eine Datei im Namensformat cachegrind.out.%ZUFALLSNUMMER%. Bei mir war die Datei satte 140MB gross.

Doch was man nun damit? Zuerst einmal auf den Mac kopiert, dann mit qcachegrind (eigentlich: kcachegrind) analysiert. Dieses installiert man sich mit MacPorts:

# port install qcachegrind

Mittels Spotlight sucht man nach „qcachegrind“ und startet die präsentierte App. Man wählt cachegrind.out.%ZUFALLSNUMMER% und erhält folgendes zu Gesicht: