$30 off During Our Annual Pro Sale. View Details »

Profiling TYPO3 Flow Applications

Profiling TYPO3 Flow Applications

Presentation given at T3CON NA in San Francisco. The slides also match the presentation giving during Inspiring Flow 2013 in Kolbermoor on 2013/04/20.

Karsten Dambekalns

May 30, 2013

More Decks by Karsten Dambekalns

Other Decks in Programming


  1. Inspiring people to share Inspiring people to share Profiling TYPO3

    Flow Applications
  2. Karsten Dambekalns TYPO3 Neos and Flow developer 35 years old

    lives in Lübeck, Germany 1 wife, 3 sons 1 espresso machine likes canoeing & climbing
  3. Plumber & PhpProfiler

  4. Features

  5. Metrics at a glance

  6. Listing Profiling Runs

  7. Listing Profiling Runs

  8. XHProf Profiling Data

  9. Request Timeline

  10. Comparing Runs

  11. Installation & Configuration

  12. Installing XHProf On Windows: •If you need a working DLL

    for XHProf on Windows (PHP 5.4) check http://dev.freshsite.pl/php-extensions/xhprof.html •This one tracks time, while other builds found on the internet did not MacPorts: •sudo port install php54-xhprof Linux: •Search for a package in your distribution of choice
  13. "repositories": [ { "type": "git", "url": "https://github.com/kdambekalns/Plumber.git" }, { "type":

    "git", "url": "https://github.com/kdambekalns/PhpProfiler.git" } ] "require": { "sandstorm/plumber": "standalone", "sandstorm/phpprofiler": "standalone-addedbackends as 1.0.3-dev" } Installing Plumber composer.json
  14. - name: 'Plumber' uriPattern: 'profiler/<PlumberSubroutes>' defaults: '@format': 'html' subRoutes: PlumberSubroutes:

    package: Sandstorm.Plumber Installing Plumber Routes.yaml
  15. Sandstorm: Plumber: calculations: fileSystemCalls: label: 'No. of FS calls' type:

    regexSum regex: '#==>(file_get_contents|file_exists| filesize|is_dir|is_file|is_link|realpath|symlink| file_put_contents)#' Configuration Settings.yaml
  16. What is new? (in my version)

  17. More XHProf Beauty PhpProfiler can store data for •xhprof.io settings

    (http://xhprof.io/) •preinheimer-xhgui (https://github.com/preinheimer/xhgui) Install from their websites and set up as documented there :) Configure the backend(s) to use
  18. xhprof.io

  19. xhprof.io

  20. XHGui, Paul Reinheimer style

  21. XHGui Custom Views

  22. Sandstorm: PhpProfiler: 'xhprof.io': enable: true username: 'myuser' password: 'mypassword' 'xhgui':

    enable: true Configuration Settings.yaml
  23. Running the UIs preinheimer-xhgui cd /path/to/xhgui/web/webroot php -S localhost:8080 xhprof.io

    cd /path/to/xhprof.io php -S localhost:8080 •unfortunately that needs a proper virtual host
  24. Up and Coming

  25. Plans for the near Future Make use of backends configurable

    •there are some more helpful configuration settings Import existing profiles into new analysis tools •if a better UI comes up, using old data would be nice Provide "production mode" that can be left running on live servers •do not profile every request, but only every 2nd, 10th, 100th, … Merge branches back into master, polish, promote
  26. Help to make this reality! Fund my project proposal Any

    amount helps Have a better Plumber Pledge
  27. Thank You! slides: http://speakerdeck.com/kdambekalns http://slideshare.net/kfish email: karsten@typo3.org | karsten@dambekalns.de web:

    http://karsten.dambekalns.de twitter & app.net: @kdambekalns
  28. None