In einem vorigen Artikel habe ich bereits erwähnt wie man xDebug unter Mac OS X und MAMP konfiguriert. In diesem Artikel geht es um das Profiling mittels xDebug und die Analyse der generierten Daten.
Als erstes müssen in der php.ini folgende Zeilen hinzugefügt werden:
[xdebug] zend_extension="/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so" xdebug.profiler_enable=1 xdebug.profiler_output_dir=/tmp/xdebug
Der angegebene Pfad zu der xDebug-Extension und dem Output-Verzeichnis sollte kann natürlich abweichen und sollte angepasst werden. Nach der Änderung muss der Apache-Server einmal neugestartet werden.
Nun wird bei jedem Aufruf im Browser ein entsprechendes Logfile geschrieben. Möchte man dies nicht, kann man über ein entsprechenden Parameter oder ein Cookie das logging anstoßen. Dazu ist allerdings die Konfiguration in der php.ini anzupassen. Außerdem kann man als Nutzer von phpStorm eine Toolbar generieren um Zugriff auf die verschiedenen Aktionen zu bekommen.
Um die geschriebenen Dateien zu analysieren nutze ich phpStorm 5. Diese können mittels „Tools -> Analyze Xdebug Profiler Snapshot…“ geöffnet werden.
Die Analyse ist eigentlich sehr einfach und selbsterklärend. Einfach mal ausprobieren!
Um die erstellten Dateien zu analysieren eignen sich weiterhin die folgenden Tools:
- KCachegrind
- WinCacheGrind (nur für Windows)
- xDebugToolKit
- WebGrind
In diesem Artikel ist außerdem sehr schön beschrieben wie man webgrind (auch auf GitHub) unter Mac OS X und MAMP konfiguriert.