Zużycie pamięci
Jeżeli PHP skompilowane zostało z opcją --enable-memory-limit to w xdebug będziemy mieć dostęp do funkcji xdebug_memory_usage() i xdebug_peak_memory_usage(). Pierwsza zwraca (int) ilość zajmowanej pamięci przez wykonujący się właśnie skrypt, druga zwraca największe zużycie pamięci (od początku do momentu wywołania funkcji) Po wczytaniu 4.6MB plik pdf funkcja xdebug zwraca pik 4.61658477783 MB zajętej pamięci.Śledzenie wykonywania się kodu
xdebug_start_trace(string trace_file [, integer options]) - za pomocą tej funkcji uruchamiamy śledzenie wykonywania się kodu. Pierwszy parametr to nazwa pliku, do którego mają być zapisane dane a drugi to albo 0 albo 1 - ustala formatowanie danych, w przypadku 1 dane będą dodatkowo dopisywane do pliku (nie będą nadpisywane istniejące dane. Przykładowy wynik:TRACE START [2008-11-11 19:04:15]
0.0012 189752 -> define() /srv/http/html/punbb-1.2.20/index.php:27
0.0017 264176 -> require(/srv/http/html/punbb-1.2.20/include/common.php) /srv/http/html/punbb-1.2.20/index.php:28
0.0017 264176 -> defined() /srv/http/html/punbb-1.2.20/include/common.php:32
0.0048 850384 -> require(/srv/http/html/punbb-1.2.20/include/functions.php) /srv/http/html/punbb-1.2.20/include/common.php:37
0.0048 850456 -> function_exists() /srv/http/html/punbb-1.2.20/include/functions.php:653
Profiler Kodu
Wystarczy dodać do php.ini:xdebug.profiler_enable=1 xdebug.extended_info=0 xdebug.remote_enable=0 xdebug.auto_trace=0 xdebug.profiler_output_dir=/ścieżka/do/katalogu
Instalacja KcacheGrind
Pod MS Windows istnieje "wingrind", lecz jest to stara aplikacja i brakuje jej funkcjonalności dostępnej w KCachegrind jak np. wizualizacja zużycia zasobów przez poszczególne bloki kodu. Pod Linuksem i Uniksami Kcachegrind można zainstalowac z repozytorium, jest to aplikacja wchodząca w skład KDE. Jeżeli nie ma oddzielnego pakietu należy zainstalować pakiet kdesdk.
Dla MS Windows należy użyć instalatora aplikacji KDE4 z winkde.org. Pobieramy instalator i przy instalowaniu pakietów wybieramy kdesdk (oraz opcjonalnie pakiet z tłumaczeniami i graphiz).
W przypadku Mac OS X można skorzystać z pakietów dostępnych w repozytorium Fink, czy też Darwin Ports, lub użyć pakietów z KDE 4 Mac (nie testowałem).
- Dodane: 19.11.2008 przez riklaunim