Inspiring people to
shareInspiring people to
share
ProfilingTYPO3 Flow Applications
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
Plumber & PhpProfiler
Features
Metrics at a glance
Listing Profiling Runs
Listing Profiling Runs
XHProf Profiling Data
Request Timeline
Comparing Runs
Installation &Configuration
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
"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
- name: 'Plumber' uriPattern: 'profiler/<PlumberSubroutes>' defaults: '@format': 'html' subRoutes: PlumberSubroutes: package: Sandstorm.Plumber
Installing Plumber
Routes.yaml
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
What is new?(in my version)
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
xhprof.io
xhprof.io
XHGui, Paul Reinheimer style
XHGui Custom Views
Sandstorm: PhpProfiler:
'xhprof.io': enable: true username: 'myuser' password: 'mypassword'
'xhgui': enable: true
Configuration
Settings.yaml
Running the UIs
preinheimer-xhgui
cd /path/to/xhgui/web/webrootphp -S localhost:8080
xhprof.io
cd /path/to/xhprof.iophp -S localhost:8080
• unfortunately that needs a proper virtual host
Up and Coming
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
Help to make this reality!
Fund my project proposal
Any amount helps
Have a better Plumber
Pledge
Thank You!
slides:http://speakerdeck.com/kdambekalnshttp://slideshare.net/kfish
email: [email protected] | [email protected]
web: http://karsten.dambekalns.de
twitter & app.net: @kdambekalns