Profilowanie kodu TYPO3 za pomocą XHProf

XHProf to profiler kodu PHP opracowany przez developerów Facebooka. Bardziej doświadczeni developerzy CMS TYPO3 na pewno mieli nie raz okazję skorzystać z jego możliwości.

Nie wyobrażamy sobie już wydajnej pracy z TYPO3 i szybkiego debugowania aplikacji bez tego narzędzia. Jeśli dalej używasz wbudowanego w TYPO3 admPanelu, aby sprawdzić która część strony generuje się za długo, to najwyższy czas spróbować XHProf i zobaczyć jak dużo cennych danych  można uzyskać.

XHProf dostarcza wiele ciekawych informacji min na temat:

     
  1.  ilości odwołań do każdej z funkcji
  2.  
  3.  czasu wykonania funkcji
  4.  
  5.  wykorzystania pamięci
  6.  

Całość można podglądać po każdym odświeżeniu strony w formie dwóch różnych widoków:

          

Flat profile

Hierarchical profile

XHProf result table

Hierarchical profile

XHProf pozwala również na porównywanie danych z różnych wywołań. Możemy np.: porównać dane przed i po zmianie w krytycznej części kodu a następnie sprawdzić jaki to miało wpływ na wydajność.

Ostatnio zmagaliśmy się z problemem zbyt dużych czasów podczas generowania obrazków na stronie. Po zainstalowaniu XProf okazało się, że PHP pochłania za dużo czasu na funkcjach związanych z odczytem katalogu i dostępem do plików. Przyczyną było  znacznie przekroczenie ilości plików graficznych w jednym katalogu - ponad 150tys.

Opisane przeze mnie rzeczy to jedynie wstęp do tego jak można wykorzystać XHprof. Jeśli chcesz dowiedzieć się więcej to odsyłam do oficjalnej dokumentacji na stronie mirror.facebook.net/facebook/xhprof/doc.html

Polecam również przyjrzenie się wykresowi Hierarchical profile w pełnych rozmiarach http://techblog.evo.pl/wp-content/uploads/2010/02/callgraph.png. Wykres przedstawia  scachowaną stronę z jednym obiektem typu USER_INT. Jako cache backend użyta jest baza danych.

Dodaj swój komentarz:

* Tylko oznaczone pola są wymagane





Gravatar: cycu cycu, 29.05.2010 01:29
Śmieszne... Blog o typo3, a postawiony na Wordpressie...
Gravatar: bart bart, 29.05.2010 17:09
rozwin co Cie tak smieszy?
Gravatar: maholtz maholtz, 22.07.2011 11:33
You don't have permission to access /fileadmin/_temp_/callgraph.png on this server.

_temp_ is secured via .htaccess in TYPO3 by default, perhaps you can put the image directly in fileadmin?

thanks,
martin
Gravatar: maholtz maholtz, 22.07.2011 11:34
ok, perhaps just change the link to callgraph.png to:
http://techblog.evo.pl/wp-cont...
Gravatar: Bartosz Aninowski Bartosz Aninowski, 22.07.2011 11:57
maholtz thanks for info. Fixed.