2013-07-15 10 views
5

Czy istnieje najlepszych praktyk (IDE oparte?), PHP/skrypt bash lub coś innego doJak śledzić czas wykonywania każdej linii/bloku linii/metod w PHP?

  • uzyskać czas wykonania linii
  • uzyskać czas wykonania bloku linii (dla przykład linia 17 do 42)
  • uzyskać czas wykonania określonej funkcji lub metody

w PHP? Obecnie utknąłem w samodzielnych rozwiązaniach, które używają microtime(), ale jest to brudna, niefortunna i powolna metoda. Szczególnie interesują mnie rozwiązania z głównymi IDE PHP, takimi jak Eclipse, Netbeans, PHPStorm i VIM. Idealnym rozwiązaniem byłoby narzędzie, które śledzi całą aplikację i zapewnia śledzenie czasu wykonania dla każdej linii, każdej metody i każdego niestandardowego bloku działań.

Dostarczę 50 nagród za dobrą odpowiedź.

+4

Magicznym hasłem wyszukiwanym przez Google jest to, czego szukasz, to "profiler". Spójrz na http://www.xdebug.org/docs/profiler - jednak niestety zalecenia dotyczące narzędzi (do czego to się sprowadza) są uważane za nietypowe dla SO. – DaveRandom

+1

Jestem całkowicie niezadowolony z powodu, że to pytanie zostało zamknięte, nie ma żadnej opartej na opiniach odpowiedzi, ponieważ zapytał o program, czy istnieje, czy nie, nie wiem, dlaczego widzę jakieś bzdury i ślepe śledzę tutaj –

+0

@DaveRandom dzięki za ta informacja :) –

Odpowiedz

7

Oto czego szukasz: http://xdebug.org/docs/profiler. Możesz skonfigurować atrybuty netbeans do dołączania do procesu php, uruchamiać skrypty krok po kroku, oglądać bieżące zmienne i analizować czas ich działania.

Wystarczy dodać dll innym rozszerzeniem php, konfigurować przez php ini:

; xdebug 
zend_extension = "C:\php\v5.4\ext\php_xdebug-2.2.3-5.4-vc9-nts.dll" 
xdebug.remote_enable=on 
;xdebug.remote_log="/var/log/xdebug.log" 
xdebug.remote_host=localhost 
xdebug.remote_handler=dbgp 
xdebug.remote_port=9000 
xdebug.profiler_enable=1 
xdebug.profiler_output_dir="C:\dev\profilling\" 

Netbeans setup:

enter image description here

Następnie naciśnij Ctrl + F5 w NetBeans (debugowanie). Niż można uruchomić skryptu krok po kroku i oglądać aktualne wartości zmiennych:

enter image description here

Aby przeglądać wygenerowane profilarek zalogować lub wykorzystanie http://sourceforge.net/projects/precompiledbin/http://sourceforge.net/projects/wincachegrind/ w oknach lub http://kcachegrind.sourceforge.net/html/Home.html dla systemu Linux.