Your SlideShare is downloading. ×
0
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Profiling PHP Applications
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Profiling PHP Applications

671

Published on

Ctvrtkon 03/10/2013

Ctvrtkon 03/10/2013

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
671
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Profilování PHP aplikací Michal Haták Čtvrtkon 3.10.2013
  • 2. O mně Lead developer @ INIZIO Internet Media PHP a CoffeeScript @Twistacz blog.twista.cz
  • 3. Co je vůbec profilování ? “Profilování je vyhledávání míst v programu, které jsou vhodné pro optimalizaci”
  • 4. Cíl: nalezení pomalých částí aplikace
  • 5. 1. krok - měření Získání statistických údajů o běžícím programu Co můžeme měřit ? ● Paměť ● Čas ● Počet a délku volání funkcí ● ...
  • 6. 2. krok – profilovací analýza Z naměřených údajů získáváme různé statistiky Provádíme optimalizace
  • 7. Profilování můžeme rozdělit na dva druhy
  • 8. Zkusíme změnit konfiguraci/kód a změříme rozdíl Běžné profilování
  • 9. Aghhhh, Aplikace neběží!! Proč je tak pomalá? Rychle, opravit! Kritické profilování
  • 10. Obvykle budete raději v první situaci
  • 11. ideální je profilovat během vývoje na reálných datech sledovat prvotní známky „pomalosti“ dát si pozor na kritická místa
  • 12. Aplikace
  • 13. Nástroje microtime(); memory_get_usage(); memory_get_peak_usage();
  • 14. Nástroje microtime(); memory_get_usage(); memory_get_peak_usage();
  • 15. Nástroje xDebug XHprof
  • 16. Co mají společného extenze do PHP shromažďují data pomáhají nám nalézt úzká místa
  • 17. XHProf Facebook open source (3/09) production-ready (malý režijní čas) pecl extension vestavěný „prohlížeč“ github.com/facebook/xhprof
  • 18. Linux: > sudo pecl install xhprof-beta [xhprof] extension=xhprof.so xhprof.output_dir=/tmp/xhprof > sudo service apache2 restart Windows: http://dev.freshsite.pl/php-extensions/xhprof.html Instalace
  • 19. XHGui open source vylepšené GUI jednoduché nasadit pokročilejší konfigurace github.com/preinheimer/xhgui
  • 20. Instalace XHGui git clone https://github.com/preinheimer/xhgui cd xhgui chmod -R 0777 cache php install.php //composer
  • 21. Nasazení - XHGui // .htaccess php_value auto_prepend_file "way/to/xhgui/external/header.php" nebo // php.ini auto_prepend_file = "way/to/xhgui/external/header.php"
  • 22. // Obtain the answer to life, the universe, // and your application one time out of a hundred if (rand(0, 100) !== 42) { return; }
  • 23. Nasazení – bez XHGui xhprof_enable(); ... $data = xhprof_disable(); $xhp = new XHProfRuns_Default(); $xhpId = $xhp ->save_run($data, "name"); zdrojak.cz/clanky/profilovani-php-skriptu-pomoci-xhprof/
  • 24. Spustíme aplikaci a hurá do XHGui
  • 25. Úvodní obrazovka
  • 26. Obrazovka běhu
  • 27. Přehled volaných funkcí/metod
  • 28. Exclusive čas strávený přímo v těle funkce Inclusive čas strávený v celém "podstromu funkcí" Co můžeme měřit
  • 29. Callgraph
  • 30. graphviz
  • 31. xDebug víc než profiler vylepšuje klasický error reporting (stack trace) debuging (+ provázání s IDE) open source
  • 32. Instalace xdebug.org/wizard.php copy & paste phpinfo(); xdebug.profiler_enable = 1 xdebug.profiler_output_dir = /tmp xdebug.profiler_enable_trigger = 1
  • 33. valgrind-format Jsou potřeba speciální programy na prohlížení záznamů WinCacheGrind – Windows github.com/jokkedk/webgrind KCacheGrind – Linux kcachegrind.sourceforge.net WebGrind – Web github.com/jokkedk/webgrind
  • 34. Webgrind
  • 35. xDebug vs. XHProf + komplexnější - problém s legacy + memory tracking + menší logy (10-15x) + rychlejší
  • 36. Pár tipů Snažte se přiblížit produkční verzi Reálná data Provoz (ab, siege)
  • 37. Pár tipů Neztrácejte čas mikrooptimalizacemi v produkci není třeba logovat vše
  • 38. Otázky?
  • 39. Děkuji za pozornost! @Twistacz blog.twista.cz

×