Performance-Analyse mit Xdebug und webgrind

webgrind

Mit dem PHP-Modul Xdebug lässt sich unter anderem die Ausführungszeit eines Skriptes sehr genau analysieren. So lässt sich im Falle einer schlechten Performance schnell der Flaschenhals aufspüren.

Viele IDEs wie z.B. PhpStorm oder NetBeans bieten bereits Funktionen um mit Xdebug eine Anwendung zu debuggen. Es gibt allerdings auch ein Web-Frontend namens webgrind, dass mit PHP realisiert wurde.

Die Anwendung muss lediglich auf den Server kopiert werden. Wenn Xdebug aktiv ist, durchsucht es automatisch das Verzeichnis indem die Cachegrind-Dateien abgelegt werden. Standardmässig ist das /tmp (konfigurierbar durch xdebug.profiler_output_dir). Ist Xdebug auf dem Server nicht aktiv, durchsucht webgrind das Verzeichnis das in der config.php unter $profilerDir eingestellt ist. Somit können auch Dateien analysiert werden, die auf einem anderen Server erstellt wurden.

Um eine Cachegrind-Datei von einem PHP-Skript zu erstellen muss der Profiler von Xdebug erst aktiviert werden. Das geschiet über die Einstellung xdebug.profiler_enable = 1 (immer aktiv) oder xdebug.profiler_enable_trigger = 1 (aktiv wenn der GET-Parameter XDEBUG_PROFILE übergeben wurde).