Profiling TYPO3 Flow Applications

Post on 21-Jan-2015

2,026 views 3 download

Tags:

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.

transcript

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