Profilowanie aplikacji w php

Czasami zdaża się pisząc aplikację w php iż gdzieś coś wykonuje się strasznie długo i trzeba zoptymalizować kod. Tylko pytanie gdzie? i co? Do tego może się nam przydać profiler czyli program do analizowania kodu w czasie jego działania.


Bardzo ciekawą propozycją jest xdebug który instaluje się jako rozszerzenie php na serwerze.

Należy zainstaować xdebug:

sudo pecl install xdebug

Dodać w pliku php.ini:

zend_extension="/usr/lib/php5/20060613+lfs/xdebug.so"
xdebug.profiler_enable = 1

I restartować serwer:

sudo /etc/init.d/apache2 restart

Dzięki takiej konfiguracji w podczas działania aplikacji php w katalogu /tmp są generowane pliki (np. cachegrind.out.9566) które można bardzo ładnie analizować przy pomocy programu KCachegrind.

A tu przykład działania: KCachegrind

PS:W systemie Ubuntu wystarczy zainstalować pakiety php5-xdebug i kcachegrind.