Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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
Tweet

More Decks by Karsten Dambekalns

Other Decks in Programming

Transcript

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

    View Slide

  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

    View Slide

  3. Plumber &
    PhpProfiler

    View Slide

  4. Features

    View Slide

  5. Metrics at a glance

    View Slide

  6. Listing Profiling Runs

    View Slide

  7. Listing Profiling Runs

    View Slide

  8. XHProf Profiling Data

    View Slide

  9. Request Timeline

    View Slide

  10. Comparing Runs

    View Slide

  11. Installation &
    Configuration

    View Slide

  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

    View Slide

  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

    View Slide

  14. -
    name: 'Plumber'
    uriPattern: 'profiler/'
    defaults:
    '@format': 'html'
    subRoutes:
    PlumberSubroutes:
    package: Sandstorm.Plumber
    Installing Plumber
    Routes.yaml

    View Slide

  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

    View Slide

  16. What is new?
    (in my version)

    View Slide

  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

    View Slide

  18. xhprof.io

    View Slide

  19. xhprof.io

    View Slide

  20. XHGui, Paul Reinheimer style

    View Slide

  21. XHGui Custom Views

    View Slide

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

    View Slide

  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

    View Slide

  24. Up and Coming

    View Slide

  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

    View Slide

  26. Help to make this reality!
    Fund my project proposal
    Any amount helps
    Have a better Plumber
    Pledge

    View Slide

  27. Thank You!
    slides:
    http://speakerdeck.com/kdambekalns
    http://slideshare.net/kfish
    email: [email protected] | [email protected]
    web: http://karsten.dambekalns.de
    twitter & app.net: @kdambekalns

    View Slide

  28. View Slide