by Logo Technical Blog – Future Processing
20.05.2013
PHP Profilers_

XHProf jest oprogramowaniem Open Source (licencja Apache 2.0) i został stworzony pierwotnie dla Facebooka, jako jedno z wielu narzędzi monitorujących pracę developerów. Jest prostym w użyciu profilerem kodu PHP o potężnych możliwościach – z jego pomocą bardzo łatwo prześledzimy ścieżkę wykonania najbardziej skomplikowanego kodu oraz jego wydajność.

Najważniejsze cechy XHProf

  • Profiler kodu PHP
  • może być używany na serwerze produkcyjnym
  • tworzone logi mogą być zapisywane w bazie danych
  • interfejs przez stronę WWW
  • każde odwiedzenie strony może wygenerować raport
  • raporty obejmują wywoływane funkcje, czas ich wywołania, ilość wywołań, stacktrace, zużycie pamięci, wykorzystanie czasu procesora
  • możliwość filtrowania po najczęściej wywoływanych funkcjach, najdłużej się wywołujących, zajmujących najwięcej pamięci czy obciążających najmocniej procesor
  • możliwość porównywania dwóch przebiegów
  • agregacja wielu przebiegów
  • call graph – graficzna analiza wywołań funkcji

Instalacja

XHProf jest dostarczany jako rozszerzenie PHP. Aby zadziałał, należy ściągnąć plugin, zbudować jego źródła i włączyć rozszerzenie (np. php.ini).

Graficzny interfejs użytkownika (zarządzanie przez WWW) jest dostarczany jako osobny projekt (skrypt) PHP.

Włączenie profilowania jest łatwe i wymaga dodania kilku linii kodu do profilowanego skryptu (na początku i na końcu). Aplikacje typu CMS można dzięki temu łatwo profilować, ponieważ często zdarza się, że wystarczy odpowiednie „adnotacje” dodać tylko
w jednym pliku, który wywołuje inne funkcje (np. w TYPO3 CMS należy tylko edytować plik index.php).

O programie szerzej można przeczytać w tym miejscu: http://php.net/manual/pl/book.xhprof.php.
Poniżej znajduje się kilka zrzutów ekranowych, które powinny zachęcić do wypróbowania tego narzędzia:

Screenshots

php1

php2

php3

php4

Related Posts

Comments

Cookies

This website stores cookies on your computer. These cookies are used to improve our website and provide more personalized services to you, both on this website and through other media. To find out more about the cookies we use, see our Cookies policy.