SlideShare a Scribd company logo
High performance websites
An introduction into xDebug profiling, Kcachegrind and JMeter
About Us




 Axel Jung             Timo Schmidt
 Software Developer    Software Developer
  AOE media GmbH         AOE media GmbH
Preparation

 Install Virtualbox and import the t3dd2012 appliance (User &
  Password: t3dd2012)
 You will find:
   • Apache with xdebug and apc
   • Jmeter
   • Kcachegrind
   • PHPStorm
 There are two vhost:
   • typo3.t3dd2012 and playground.t3dd2012
Performance measurement and tuning
Can you build a new   Yes, we can!
  website for me?
But I expect a lot of
visitors. Can you handle
          them?


            Yes, we can!
Yes, we can!
Really?
...after inventing the next,
  cutting edge, enterprise
        architecture...
...and some* days
 of development...
The servers are not
fast enough for your application ;)
xDebug

INSTALL AND CONFIGURE
Install XDebug & KCachegrind
●   Install xdebug

(eg. apt-get install php5-xdebug)

●   Install kcachegrind

(eg. apt-get install kcachegrind)
Configure xDebug
●   Configuration in
    (/etc/php5/conf.d/xdebug.ini on Ubuntu)

●   xdebug.profiler_enable_trigger = 1

●   xdebug.profiler_output_dir = /..
Profiling

●   By request:

?XDEBUG_PROFILE

●   All requests by htaccess:

php_value xdebug.profiler_enable 1
Open with KCachegrind
KCachegrind

OPTIMIZE WITH IDE AND MIND
Analyzing Cachegrinds
●High self / medium self and
many calls =>

High potential for optimization

●   Early in call graph & not needed =>

High potential for optimization
Hands on

● There is an extension „slowstock“
in the VM.

● Open:
„http://typo3.t3dd2012/index.php?id=2“ and analyze it with kcachegrind.
Performance measurement and tuning
Total Time Cost 12769352




   This code is very time consuming
Change 1 (SoapConversionRateProvider)



SoapClient is instantiated everytime
=> move to constructor
Change 1 (SoapConversionRateProvider)
Before:
/**
 * @param string $fromCurrency
 * @param string $toCurrency
 * @return float
 */
public function getConversionRate($fromCurrency, $toCurrency) {
              $converter = new SoapClient($this->wsdl);

             $in = new stdClass();
             $in->FromCurrency = $fromCurrency;
             $in->ToCurrency = $toCurrency;

             $out = $converter->ConversionRate($in);
             $result = $out->ConversionRateResult;

             return $result;
}
Change 1 (SoapConversionRateProvider)
After:
/** @var SoapClient */
protected $converter;

/** @return void */
public function __construct() {
                $this->converter = new SoapClient($this->wsdl);
}

/**
 * @param string $fromCurrency
 * @param string $toCurrency
 * @return float
 */
public function getConversionRate($fromCurrency, $toCurrency) {
                $in = new stdClass();
                $in->FromCurrency = $fromCurrency;
                $in->ToCurrency = $toCurrency;

               $out = $this->converter->ConversionRate($in);
               $result = $out->ConversionRateResult;
               return $result;
}
Total Time Cost 10910560 ( ~ -15%)




    11,99 % is still much time :(
Change 2 (SoapConversionRateProvider)

●  Conversion rates can be cached in APC cache to reduce webservice
calls.

    – Inject
           „ConversionRateCache“ into
      SoapConversionRateProvider.

    – Use   the cache in the convert method.
Change 2 (SoapConversionRateProvider)
Before:
/** @var SoapClient */
protected $converter;

/** @return void */
public function __construct() {
                $this->converter = new SoapClient($this->wsdl);
}

/**
 * @param string $fromCurrency
 * @param string $toCurrency
 * @return float
 */
public function getConversionRate($fromCurrency, $toCurrency) {
                $in = new stdClass();
                $in->FromCurrency = $fromCurrency;
                $in->ToCurrency = $toCurrency;

               $out = $this->converter->ConversionRate($in);
               $result = $out->ConversionRateResult;

               return $result;
}
Change 2 (SoapConversionRateProvider)
After:
 /** @var Tx_Slowstock_System_Cache_ConversionRateCache */
protected $cache;
 ...

/** @param Tx_Slowstock_System_Cache_ConversionRateCache $cache */
public function injectRateCache(Tx_Slowstock_System_Cache_ConversionRateCache $cache) {
                $this->cache = $cache;
}
…

public function getConversionRate($fromCurrency, $toCurrency) {
                $cacheKey = $fromCurrency.'-'.$toCurrency;
                if(!$this->cache->has($cacheKey)) {
                                   $in = new stdClass();
                                   $in->FromCurrency = $fromCurrency;
                                   $in->ToCurrency = $toCurrency;

                                $out = $this->converter->ConversionRate($in);
                                $result = $out->ConversionRateResult;
                                $this->cache->set($cacheKey, $result);
               }
               return $this->cache->get($cacheKey);
}
Change 2 (SoapConversionRateProvider)
After:
 /** @var Tx_Slowstock_System_Cache_ConversionRateCache */
protected $cache;
 ...

/** @param Tx_Slowstock_System_Cache_ConversionRateCache $cache */
public function injectRateCache(Tx_Slowstock_System_Cache_ConversionRateCache $cache) {
                $this->cache = $cache;
}
…

public function getConversionRate($fromCurrency, $toCurrency) {
                $cacheKey = $fromCurrency.'-'.$toCurrency;
                if(!$this->cache->has($cacheKey)) {
                                   $in = new stdClass();
                                   $in->FromCurrency = $fromCurrency;
                                   $in->ToCurrency = $toCurrency;

                                $out = $this->converter->ConversionRate($in);
                                $result = $out->ConversionRateResult;
                                $this->cache->set($cacheKey, $result);
               }
               return $this->cache->get($cacheKey);
}
Total Time Cost 5187627 ( ~ -50%)




 Much better, but let's look on the call
  graph... do we need all that stuff?
The kcachegrind call graph
The kcachegrind call graph




Do we need any TCA in Eid? No
Change 3 – Remove unneeded code:
                    (Resources/Private/Eid/rates.php):
Before:
tslib_eidtools::connectDB();
tslib_eidtools::initTCA();
$TSFE = t3lib_div::makeInstance('tslib_fe', $GLOBALS['TYPO3_CONF_VARS'], ...);

After:
tslib_eidtools::connectDB();
$TSFE = t3lib_div::makeInstance('tslib_fe', $GLOBALS['TYPO3_CONF_VARS'], ...);
Total Time Cost 2877900 ( ~ -45%)
Summary

●       From 12769352 => 2877900 (-77%) with three changes 

●       Additional Ideas:

    ●    Reduce created fluid objects by implementing static fluid view helpers
         (examples in fluid core)

    ●    Cache reverse conversion rate (1/rate)

    ●    Use APC Cache Backend for TYPO3 and Extbase caches
JMeter

http://jmeter.apache.org/
Why Jmeter?
JMeter

BUILD A SIMPLE WEB TESTPLAN
JMeter Gui
Add Thread Group
Name Group
Add HTTP Defaults
Set Server
Add HTTP Sampler
Set Path
Add Listener
Start Tests
View Results
JMeter

RECORD WITH PROXY
Add Recording Controller
Add Proxy Server
Exclude Assets
Start
Configure Browser
Browse
View results
JMeter

ADVANCED
Add Asserts
Match Text
Constant Timer
Set the Base
Summary Report
Graph Report
Define Variables
Use Variables
CSV Files
CSV Settings
Use CSV Vars
Command Line

• /…/jmeter -n -t plan.jmx -l build/logs/testplan.jtl -j
  build/logs/testplan.log
Jenkins and JMeter
Detail Report
Use Properties

 -p ${properties}
JMeter + Cloud

DISTRIBUTED TESTING
Start Server
jmeter.properties

remote_hosts=127.0.0.1
Run Slaves
http://aws.amazon.com/

AMAZON CLOUD
Create User
EC2
Create Key
Name Key
Download Key
Create Security Groups
Launch
Select AMI ami-3586be41
Minimum Small
Configure Firewall
Wait 15 Min
Get Adress
Connect
Start Cloud Tool
Start Instances
Wait for Slaves
Slave Log
Performance measurement and tuning
Close JMeter
All Slave will be terminated
Slave AMI

• ami-963e0ce2
• Autostart JMeter im Server Mode
Costs
Want to know more?




European HQ:   AOE media GmbH
               Borsigstraße 3
               65205 Wiesbaden

Tel.:                            +49 (0)6122 70 70 7 - 0
Fax:                             +49 (0)6122 70 70 7 - 199
E-Mail:                          postfach@aoemedia.de
Web:                             http://www.aoemedia.de
Ad

More Related Content

What's hot (20)

Electrify your code with PHP Generators
Electrify your code with PHP GeneratorsElectrify your code with PHP Generators
Electrify your code with PHP Generators
Mark Baker
 
Study of aloha protocol using ns2 network java proram
Study of aloha protocol using ns2 network java proramStudy of aloha protocol using ns2 network java proram
Study of aloha protocol using ns2 network java proram
Meenakshi Devi
 
Ns2programs
Ns2programsNs2programs
Ns2programs
Meenakshi Devi
 
FwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.jsFwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.js
Timur Shemsedinov
 
Learning Dtrace
Learning DtraceLearning Dtrace
Learning Dtrace
JeongHun Byeon
 
TDC2018SP | Trilha Go - Processando analise genetica em background com Go
TDC2018SP | Trilha Go - Processando analise genetica em background com GoTDC2018SP | Trilha Go - Processando analise genetica em background com Go
TDC2018SP | Trilha Go - Processando analise genetica em background com Go
tdc-globalcode
 
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Raimonds Simanovskis
 
bluespec talk
bluespec talkbluespec talk
bluespec talk
Suman Karumuri
 
More than syntax
More than syntaxMore than syntax
More than syntax
Wooga
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기
JeongHun Byeon
 
Node.js flow control
Node.js flow controlNode.js flow control
Node.js flow control
Simon Su
 
Building Your First Data Science Applicatino in MongoDB
Building Your First Data Science Applicatino in MongoDBBuilding Your First Data Science Applicatino in MongoDB
Building Your First Data Science Applicatino in MongoDB
MongoDB
 
Rails on Oracle 2011
Rails on Oracle 2011Rails on Oracle 2011
Rails on Oracle 2011
Raimonds Simanovskis
 
Asynchronous I/O in PHP
Asynchronous I/O in PHPAsynchronous I/O in PHP
Asynchronous I/O in PHP
Thomas Weinert
 
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
Vincenzo Barone
 
The promise of asynchronous php
The promise of asynchronous phpThe promise of asynchronous php
The promise of asynchronous php
Wim Godden
 
ES6, 잘 쓰고 계시죠?
ES6, 잘 쓰고 계시죠?ES6, 잘 쓰고 계시죠?
ES6, 잘 쓰고 계시죠?
장현 한
 
The road to continuous deployment (PHPCon Poland 2016)
The road to continuous deployment (PHPCon Poland 2016)The road to continuous deployment (PHPCon Poland 2016)
The road to continuous deployment (PHPCon Poland 2016)
Michiel Rook
 
Advanced php testing in action
Advanced php testing in actionAdvanced php testing in action
Advanced php testing in action
Jace Ju
 
Electrify your code with PHP Generators
Electrify your code with PHP GeneratorsElectrify your code with PHP Generators
Electrify your code with PHP Generators
Mark Baker
 
Study of aloha protocol using ns2 network java proram
Study of aloha protocol using ns2 network java proramStudy of aloha protocol using ns2 network java proram
Study of aloha protocol using ns2 network java proram
Meenakshi Devi
 
FwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.jsFwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.js
Timur Shemsedinov
 
TDC2018SP | Trilha Go - Processando analise genetica em background com Go
TDC2018SP | Trilha Go - Processando analise genetica em background com GoTDC2018SP | Trilha Go - Processando analise genetica em background com Go
TDC2018SP | Trilha Go - Processando analise genetica em background com Go
tdc-globalcode
 
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and JasmineRails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Rails-like JavaScript Using CoffeeScript, Backbone.js and Jasmine
Raimonds Simanovskis
 
More than syntax
More than syntaxMore than syntax
More than syntax
Wooga
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기
JeongHun Byeon
 
Node.js flow control
Node.js flow controlNode.js flow control
Node.js flow control
Simon Su
 
Building Your First Data Science Applicatino in MongoDB
Building Your First Data Science Applicatino in MongoDBBuilding Your First Data Science Applicatino in MongoDB
Building Your First Data Science Applicatino in MongoDB
MongoDB
 
Asynchronous I/O in PHP
Asynchronous I/O in PHPAsynchronous I/O in PHP
Asynchronous I/O in PHP
Thomas Weinert
 
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
Vincenzo Barone
 
The promise of asynchronous php
The promise of asynchronous phpThe promise of asynchronous php
The promise of asynchronous php
Wim Godden
 
ES6, 잘 쓰고 계시죠?
ES6, 잘 쓰고 계시죠?ES6, 잘 쓰고 계시죠?
ES6, 잘 쓰고 계시죠?
장현 한
 
The road to continuous deployment (PHPCon Poland 2016)
The road to continuous deployment (PHPCon Poland 2016)The road to continuous deployment (PHPCon Poland 2016)
The road to continuous deployment (PHPCon Poland 2016)
Michiel Rook
 
Advanced php testing in action
Advanced php testing in actionAdvanced php testing in action
Advanced php testing in action
Jace Ju
 

Similar to Performance measurement and tuning (20)

Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
AOE
 
Effecient javascript
Effecient javascriptEffecient javascript
Effecient javascript
mpnkhan
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
Lukas Smith
 
Symfony2 from the Trenches
Symfony2 from the TrenchesSymfony2 from the Trenches
Symfony2 from the Trenches
Jonathan Wage
 
Curscatalyst
CurscatalystCurscatalyst
Curscatalyst
Kar Juan
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
diego_k
 
Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010
Chris Ramsdale
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBox
bobmcwhirter
 
Charla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo WebCharla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo Web
Mikel Torres Ugarte
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by example
Geoffrey De Smet
 
From framework coupled code to #microservices through #DDD /by @codelytv
From framework coupled code to #microservices through #DDD /by @codelytvFrom framework coupled code to #microservices through #DDD /by @codelytv
From framework coupled code to #microservices through #DDD /by @codelytv
CodelyTV
 
Sinatra for REST services
Sinatra for REST servicesSinatra for REST services
Sinatra for REST services
Emanuele DelBono
 
CppTutorial.ppt
CppTutorial.pptCppTutorial.ppt
CppTutorial.ppt
HODZoology3
 
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook
guoqing75
 
Presto anatomy
Presto anatomyPresto anatomy
Presto anatomy
Dongmin Yu
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hope
Marcus Ramberg
 
Tatsumaki
TatsumakiTatsumaki
Tatsumaki
Tatsuhiko Miyagawa
 
Introduction to angular js
Introduction to angular jsIntroduction to angular js
Introduction to angular js
Marco Vito Moscaritolo
 
Facebook的缓存系统
Facebook的缓存系统Facebook的缓存系统
Facebook的缓存系统
yiditushe
 
Better Open Source Enterprise C++ Web Services
Better Open Source Enterprise C++ Web ServicesBetter Open Source Enterprise C++ Web Services
Better Open Source Enterprise C++ Web Services
WSO2
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
AOE
 
Effecient javascript
Effecient javascriptEffecient javascript
Effecient javascript
mpnkhan
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
Lukas Smith
 
Symfony2 from the Trenches
Symfony2 from the TrenchesSymfony2 from the Trenches
Symfony2 from the Trenches
Jonathan Wage
 
Curscatalyst
CurscatalystCurscatalyst
Curscatalyst
Kar Juan
 
Perl web frameworks
Perl web frameworksPerl web frameworks
Perl web frameworks
diego_k
 
Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010Building Web Apps Sanely - EclipseCon 2010
Building Web Apps Sanely - EclipseCon 2010
Chris Ramsdale
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBox
bobmcwhirter
 
Charla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo WebCharla EHU Noviembre 2014 - Desarrollo Web
Charla EHU Noviembre 2014 - Desarrollo Web
Mikel Torres Ugarte
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by example
Geoffrey De Smet
 
From framework coupled code to #microservices through #DDD /by @codelytv
From framework coupled code to #microservices through #DDD /by @codelytvFrom framework coupled code to #microservices through #DDD /by @codelytv
From framework coupled code to #microservices through #DDD /by @codelytv
CodelyTV
 
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook
guoqing75
 
Presto anatomy
Presto anatomyPresto anatomy
Presto anatomy
Dongmin Yu
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hope
Marcus Ramberg
 
Facebook的缓存系统
Facebook的缓存系统Facebook的缓存系统
Facebook的缓存系统
yiditushe
 
Better Open Source Enterprise C++ Web Services
Better Open Source Enterprise C++ Web ServicesBetter Open Source Enterprise C++ Web Services
Better Open Source Enterprise C++ Web Services
WSO2
 
Ad

More from AOE (20)

Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)
AOE
 
rock-solid TYPO3 development with continuous integration and deployment
rock-solid TYPO3 development with continuous integration and deploymentrock-solid TYPO3 development with continuous integration and deployment
rock-solid TYPO3 development with continuous integration and deployment
AOE
 
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
AOE
 
Continuous Quality Assurance using Selenium WebDriver
Continuous Quality Assurance using Selenium WebDriverContinuous Quality Assurance using Selenium WebDriver
Continuous Quality Assurance using Selenium WebDriver
AOE
 
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
AOE
 
SONY on TYPO3 - Rapid Global CMS Deployment
SONY on TYPO3 - Rapid Global CMS DeploymentSONY on TYPO3 - Rapid Global CMS Deployment
SONY on TYPO3 - Rapid Global CMS Deployment
AOE
 
The typo3.org Relaunch Project
The typo3.org Relaunch ProjectThe typo3.org Relaunch Project
The typo3.org Relaunch Project
AOE
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
AOE
 
Searchperience Indexierungspipeline
Searchperience   IndexierungspipelineSearchperience   Indexierungspipeline
Searchperience Indexierungspipeline
AOE
 
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der Cloud
AOE
 
Selenium 2 for PHP(Unit)
Selenium 2 for PHP(Unit)Selenium 2 for PHP(Unit)
Selenium 2 for PHP(Unit)
AOE
 
Angrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAngrybirds Magento Cloud Deployment
Angrybirds Magento Cloud Deployment
AOE
 
T3DD12 Caching with Varnish
T3DD12 Caching with VarnishT3DD12 Caching with Varnish
T3DD12 Caching with Varnish
AOE
 
T3DD12 community extension
T3DD12  community extensionT3DD12  community extension
T3DD12 community extension
AOE
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
AOE
 
Debugging, Monitoring and Profiling in TYPO3
Debugging, Monitoring and Profiling in TYPO3Debugging, Monitoring and Profiling in TYPO3
Debugging, Monitoring and Profiling in TYPO3
AOE
 
Panasonic search
Panasonic searchPanasonic search
Panasonic search
AOE
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
AOE
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
AOE
 
Open Source CMS TYPO3 at Cisco WebEx
Open Source CMS TYPO3 at Cisco WebExOpen Source CMS TYPO3 at Cisco WebEx
Open Source CMS TYPO3 at Cisco WebEx
AOE
 
Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)
AOE
 
rock-solid TYPO3 development with continuous integration and deployment
rock-solid TYPO3 development with continuous integration and deploymentrock-solid TYPO3 development with continuous integration and deployment
rock-solid TYPO3 development with continuous integration and deployment
AOE
 
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
AOE
 
Continuous Quality Assurance using Selenium WebDriver
Continuous Quality Assurance using Selenium WebDriverContinuous Quality Assurance using Selenium WebDriver
Continuous Quality Assurance using Selenium WebDriver
AOE
 
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
AOE
 
SONY on TYPO3 - Rapid Global CMS Deployment
SONY on TYPO3 - Rapid Global CMS DeploymentSONY on TYPO3 - Rapid Global CMS Deployment
SONY on TYPO3 - Rapid Global CMS Deployment
AOE
 
The typo3.org Relaunch Project
The typo3.org Relaunch ProjectThe typo3.org Relaunch Project
The typo3.org Relaunch Project
AOE
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
AOE
 
Searchperience Indexierungspipeline
Searchperience   IndexierungspipelineSearchperience   Indexierungspipeline
Searchperience Indexierungspipeline
AOE
 
High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der Cloud
AOE
 
Selenium 2 for PHP(Unit)
Selenium 2 for PHP(Unit)Selenium 2 for PHP(Unit)
Selenium 2 for PHP(Unit)
AOE
 
Angrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAngrybirds Magento Cloud Deployment
Angrybirds Magento Cloud Deployment
AOE
 
T3DD12 Caching with Varnish
T3DD12 Caching with VarnishT3DD12 Caching with Varnish
T3DD12 Caching with Varnish
AOE
 
T3DD12 community extension
T3DD12  community extensionT3DD12  community extension
T3DD12 community extension
AOE
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
AOE
 
Debugging, Monitoring and Profiling in TYPO3
Debugging, Monitoring and Profiling in TYPO3Debugging, Monitoring and Profiling in TYPO3
Debugging, Monitoring and Profiling in TYPO3
AOE
 
Panasonic search
Panasonic searchPanasonic search
Panasonic search
AOE
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
AOE
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
AOE
 
Open Source CMS TYPO3 at Cisco WebEx
Open Source CMS TYPO3 at Cisco WebExOpen Source CMS TYPO3 at Cisco WebEx
Open Source CMS TYPO3 at Cisco WebEx
AOE
 
Ad

Performance measurement and tuning