28
Inspiring people to share Inspiring people to share Profiling TYPO3 Flow Applications

Profiling TYPO3 Flow Applications

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Profiling TYPO3 Flow Applications

Inspiring people to

shareInspiring people to

share

ProfilingTYPO3 Flow Applications

Page 2: Profiling TYPO3 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

Page 3: Profiling TYPO3 Flow Applications

Plumber & PhpProfiler

Page 4: Profiling TYPO3 Flow Applications

Features

Page 5: Profiling TYPO3 Flow Applications

Metrics at a glance

Page 6: Profiling TYPO3 Flow Applications

Listing Profiling Runs

Page 7: Profiling TYPO3 Flow Applications

Listing Profiling Runs

Page 8: Profiling TYPO3 Flow Applications

XHProf Profiling Data

Page 9: Profiling TYPO3 Flow Applications

Request Timeline

Page 10: Profiling TYPO3 Flow Applications

Comparing Runs

Page 11: Profiling TYPO3 Flow Applications

Installation &Configuration

Page 12: Profiling TYPO3 Flow Applications

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

Page 13: Profiling TYPO3 Flow Applications

"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

Page 14: Profiling TYPO3 Flow Applications

-  name: 'Plumber'  uriPattern: 'profiler/<PlumberSubroutes>'  defaults:    '@format': 'html'  subRoutes:    PlumberSubroutes:      package: Sandstorm.Plumber

Installing Plumber

Routes.yaml

Page 15: Profiling TYPO3 Flow Applications

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

Page 16: Profiling TYPO3 Flow Applications

What is new?(in my version)

Page 17: Profiling TYPO3 Flow Applications

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

Page 18: Profiling TYPO3 Flow Applications

xhprof.io

Page 19: Profiling TYPO3 Flow Applications

xhprof.io

Page 20: Profiling TYPO3 Flow Applications

XHGui, Paul Reinheimer style

Page 21: Profiling TYPO3 Flow Applications

XHGui Custom Views

Page 22: Profiling TYPO3 Flow Applications

Sandstorm: PhpProfiler:

'xhprof.io': enable: true username: 'myuser' password: 'mypassword'

'xhgui': enable: true

Configuration

Settings.yaml

Page 23: Profiling TYPO3 Flow Applications

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

Page 24: Profiling TYPO3 Flow Applications

Up and Coming

Page 25: Profiling TYPO3 Flow Applications

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

Page 28: Profiling TYPO3 Flow Applications