Direkt zum Inhalt

Drupal Performance Engpässe aufspüren

Der Xdebug Profiler ist ein leistungsstarkes Tool um Leistungsengpässe im PHP Code festzustellen und zu beseitigen.

Das Xdebug Profiler Tool erzeugt pro aufgerufener Url der Website eine 'cachegrind'-kompatible Datei mit Informationen über PHP Funktionen und Ausführungszeiten.

Mit dem Tool KCacheGrind kann die erzeugte 'cachegrind'-kompatible Datei analysiert und evtl. Leistungsengpässe identifiziert werden. Die Konfiguration ist denkbar einfach. Gegebenfalls Xdebug downloaden und installieren.

In der php.ini Datei folgende Sektion einfügen:

[XDebug]
xdebug.profiler_append = 1
xdebug.profiler_output_dir = "/home/joergm/tmp"
xdebug.profiler_output_name = "cachegrind.out.%p.%H.%R.%s"
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1

Hinweis: Mit dem Url Parameter ?XDEBUG_PROFILE=1 kann dann für bestimmten Url die Erzeugung der CacheGrind Information aktiviert werden.
Nach Erzeugen der Daten für eine Url der Website, können die Daten lokal mit KCacheGrind analysiert werden.

XDEBUG Profiler Grind

Hier sieht man, dass 'main' in Summe über 122 Sekunden benötigt. Mit Klick auf 'main' und weiter auf untergeordnete Funktionen erreicht man irgendwann den wirklichen Zeitfresser, in diesem Fall assets_nodeapi

 

XDEBUG Profiler