SlideShare a Scribd company logo
High
Performance PHP
PHPDay 2013
Jonathan Klein
@jonathanklein
Saturday, May 18, 13
Slides, Links:
jkle.in/phpday
Saturday, May 18, 13
Some Etsy Stats
• 1.4 billion page views/month
• Almost $1B in sales last year
• Over 1M lines of PHP
Saturday, May 18, 13
Agenda
• Why Performance Matters
• Profiling PHP Applications
• Code Level Optimizations
• Big Wins
• Load Testing
• Takeaways
Saturday, May 18, 13
The Value of
Performance
Saturday, May 18, 13
Saturday, May 18, 13
Real World Examples
http://www.phpied.com/the-performance-business-pitch/
Saturday, May 18, 13
Real World Examples
• Firefox: -2.2 seconds = 15.4% more downloads
http://www.phpied.com/the-performance-business-pitch/
Saturday, May 18, 13
Real World Examples
• Firefox: -2.2 seconds = 15.4% more downloads
• Shopzilla: -5 seconds = 7-12% increase in
revenue
http://www.phpied.com/the-performance-business-pitch/
Saturday, May 18, 13
Real World Examples
• Firefox: -2.2 seconds = 15.4% more downloads
• Shopzilla: -5 seconds = 7-12% increase in
revenue
• Google: +400ms = 0.76% fewer searches
http://www.phpied.com/the-performance-business-pitch/
Saturday, May 18, 13
Real World Examples
• Firefox: -2.2 seconds = 15.4% more downloads
• Shopzilla: -5 seconds = 7-12% increase in
revenue
• Google: +400ms = 0.76% fewer searches
• Amazon: +100ms = -1% revenue
http://www.phpied.com/the-performance-business-pitch/
Saturday, May 18, 13
~80% of page
load time takes
place on the client
Saturday, May 18, 13
...if your backend
is fast
Saturday, May 18, 13
A fast page load is 2 seconds
This means you have 400ms to get that
HTML off your server
Saturday, May 18, 13
But network time could be ~100ms
This means you have 400ms 300ms to
build the page
Saturday, May 18, 13
< 100ms feels instant
< 1 sec feels like flow
< 10 sec to keep user’s attention
http://www.nngroup.com/articles/response-times-3-important-limits/
Saturday, May 18, 13
< 100ms feels instant
< 1 sec feels like flow
< 10 sec to keep user’s attention
Full Page Load – 2 Seconds
http://www.nngroup.com/articles/response-times-3-important-limits/
Saturday, May 18, 13
< 100ms feels instant
< 1 sec feels like flow
< 10 sec to keep user’s attention
Full Page Load – 2 Seconds
Base HTML – 400ms
http://www.nngroup.com/articles/response-times-3-important-limits/
Saturday, May 18, 13
< 100ms feels instant
< 1 sec feels like flow
< 10 sec to keep user’s attention
Full Page Load – 2 Seconds
Base HTML – 400ms
Server Generation Time – 300ms
http://www.nngroup.com/articles/response-times-3-important-limits/
Saturday, May 18, 13
Profiling PHP
Applications
Saturday, May 18, 13
Monitoring/Tracing
• Paid:
• Tracelytics (bought by AppNeta)
• AppDynamics (building a PHP solution)
• dynaTrace (building a PHP solution)
• New Relic (has a free option)
• Free:
• StatsD/Graphite
• xhprof
Saturday, May 18, 13
Monitoring/Tracing
• Paid:
• Tracelytics (bought by AppNeta)
• AppDynamics (building a PHP solution)
• dynaTrace (building a PHP solution)
• New Relic
• Free:
• StatsD/Graphite
• xhprof
Saturday, May 18, 13
StatsD (UDP packets)
$start = microtime(true);
/* script content */
$end = microtime(true);
StatsD::timing('foo.bar', $end - $start);
More Info: http://goo.gl/LbDPE
Saturday, May 18, 13
Graphite
• Written by Orbitz
• Real-time graphing engine for StatsD data
(among other things)
• http://graphite.wikidot.com/
• Architecture: http://www.aosabook.org/en/
graphite.html
Saturday, May 18, 13
Etsy Conversations PHP Time
Execution Count
Saturday, May 18, 13
Search Page PHP Time (95th Percentile)
Saturday, May 18, 13
Search Page
Execution Count
Saturday, May 18, 13
Stacked Search Timers
Saturday, May 18, 13
xhprof
• PHP Extension (need to install)
• http://pecl.php.net/package/xhprof
• Code level tracing
• Significant overhead, use in DEV only!
• Add ?xhprof=1 to URL
• Results in browser
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Lesson:
Profile Your Code
Saturday, May 18, 13
Code Level
Optimizations
Saturday, May 18, 13
Writing Efficient PHP
Set max value before loop:
$max = count($rows);
for ($i = 0; $i < $max; $i++) {
echo $i;
}
require_once() is slow
Minimize use of define()
Yes, single quotes are slightly faster than double quotes, but...
Saturday, May 18, 13
Almost Every Micro-Optimization is
Worthless
Saturday, May 18, 13
http://phpbench.com/
Saturday, May 18, 13
http://phpbench.com/
Saturday, May 18, 13
http://phpbench.com/
Saturday, May 18, 13
Writing Efficient PHP
Set max value before loop:
$max = count($rows);
for ($i = 0; $i < $max; $i++) {
echo $i;
}
Okay, this one is pretty good
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
So Why Even Mention
Micro-Optimizations?
Saturday, May 18, 13
http://code.flickr.net/2009/12/02/flipping-out/
Saturday, May 18, 13
strtok() to implode()
Saturday, May 18, 13
Lesson:
Focus on the Big
Wins
Saturday, May 18, 13
“Premature optimization is the root of all evil”
- Donald Knuth
Saturday, May 18, 13
Big Wins
Saturday, May 18, 13
Upgrade PHP
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
5.4 is ~20-40% faster than 5.3
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
5.4 is ~20-40% faster than 5.3
http://news.php.net/php.internals/57760
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
5.4 is ~20-40% faster than 5.3
http://news.php.net/php.internals/57760
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
5.4 is ~20-40% faster than 5.3
http://news.php.net/php.internals/57760
Upgrading 5.2 --> 5.4 gives a 45-70% improvement!
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
5.4 is ~20-40% faster than 5.3
http://news.php.net/php.internals/57760
Upgrading 5.2 --> 5.4 gives a 45-70% improvement!
http://php.net/migration53
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
5.4 is ~20-40% faster than 5.3
http://news.php.net/php.internals/57760
Upgrading 5.2 --> 5.4 gives a 45-70% improvement!
http://php.net/migration53
http://php.net/migration54
Saturday, May 18, 13
Upgrade PHP
5.3 is ~20% faster than 5.2
http://news.php.net/php.internals/36484
5.4 is ~20-40% faster than 5.3
http://news.php.net/php.internals/57760
Upgrading 5.2 --> 5.4 gives a 45-70% improvement!
http://php.net/migration53
http://php.net/migration54
Saturday, May 18, 13
PHP 5.4 is 5 Times Faster than PHP 4
http://static.zend.com/topics/White-paper-PHP4-PHP5.pdf
Saturday, May 18, 13
Etsy’s Upgrade to PHP 5.4
Saturday, May 18, 13
Use an Opcode
Cache (APC)
Saturday, May 18, 13
Standard Page Execution
Saturday, May 18, 13
With An Opcode Cache
Saturday, May 18, 13
Opcode Cache
Vanilla settings: 30-40% improvement
Turn off APC Stat: additional ~2x
improvement
-- Understand what is happening here
http://www.slideshare.net/vortexau/improving-php-application-performance-with-apc-presentation
Saturday, May 18, 13
Cache Data in a
Key-Value Store
Saturday, May 18, 13
APC User Cache
<?php
$foo = "Hello, World!";
apc_store('some_key', $foo);
?>
<?php
var_dump(apc_fetch('some_key'));
?>
-------- Output --------
string(12) "Hello World!"
Saturday, May 18, 13
APC User Cache
Saturday, May 18, 13
APC User Cache
• Avoid fragmentation - keep utilization under 10%
Saturday, May 18, 13
APC User Cache
• Avoid fragmentation - keep utilization under 10%
• Assign 1GB, only fill 100MB
Saturday, May 18, 13
APC User Cache
• Avoid fragmentation - keep utilization under 10%
• Assign 1GB, only fill 100MB
• Compress objects that are > 10KB before storing
Saturday, May 18, 13
APC User Cache
• Avoid fragmentation - keep utilization under 10%
• Assign 1GB, only fill 100MB
• Compress objects that are > 10KB before storing
• Reduce garbage collection in the source of
apc_store()
Saturday, May 18, 13
APC User Cache
• Avoid fragmentation - keep utilization under 10%
• Assign 1GB, only fill 100MB
• Compress objects that are > 10KB before storing
• Reduce garbage collection in the source of
apc_store()
• Consider CDB
Saturday, May 18, 13
APC User Cache
• Avoid fragmentation - keep utilization under 10%
• Assign 1GB, only fill 100MB
• Compress objects that are > 10KB before storing
• Reduce garbage collection in the source of
apc_store()
• Consider CDB
• http://engineering.wayfair.com/moving-constants-out-of-apc-
and-into-cdb/
Saturday, May 18, 13
Memcached
• Usually a separate server
• In-memory key-value store
• Extremely simple and fast
• http://memcached.org/
Saturday, May 18, 13
APC vs. Memcached
APC User Cache Memcached
Local to the Server Shared Network Resource
Good for small objects Large or small objects
Good for mostly read
workloads
Can read and write quickly
Only one instance Can be clustered
Saturday, May 18, 13
Fix All Errors
• PHP 5.3: E_ALL | E_STRICT
• PHP 5.4: E_ALL
• Can also do error_reporting(-1);
Saturday, May 18, 13
Child Processes
4-6 processes per CPU core.
Beyond that just add servers.
(Test your app)
Saturday, May 18, 13
HipHop for PHP
• Developed/Open Sourced by Facebook
• Now a VM + JIT compilation
• 5x improvement in throughput over PHP 5.2
• http://developers.facebook.com/blog/post/2010/02/02/
hiphop-for-php--move-fast/
• https://www.facebook.com/notes/facebook-engineering/
speeding-up-php-based-development-with-hiphop-vm/
10151170460698920
• https://github.com/facebook/hiphop-php
Saturday, May 18, 13
Understand
Framework
Overhead
Saturday, May 18, 13
http://systemsarchitect.net/performance-benchmark-of-popular-php-frameworks/
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Symfony is 20x
slower than raw
PHP
Saturday, May 18, 13
Load Testing
Saturday, May 18, 13
JMeter
• Open Source
• Generate load via a GUI or command
line
• Can watch req/s degrade with more
users
• Easy to use
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Saturday, May 18, 13
Be Careful
Saturday, May 18, 13
Be Careful
• JMeter looks a lot like a DOS attack
Saturday, May 18, 13
Be Careful
• JMeter looks a lot like a DOS attack
• Make sure you know what is failing
Saturday, May 18, 13
Be Careful
• JMeter looks a lot like a DOS attack
• Make sure you know what is failing
• Look at monitoring while test is running
Saturday, May 18, 13
Be Careful
• JMeter looks a lot like a DOS attack
• Make sure you know what is failing
• Look at monitoring while test is running
• Run in Production
Saturday, May 18, 13
Be Careful
• JMeter looks a lot like a DOS attack
• Make sure you know what is failing
• Look at monitoring while test is running
• Run in Production
• Run a test, make a change, run it again
Saturday, May 18, 13
Takeaways
Saturday, May 18, 13
“How Fast IsYour Site?”
Saturday, May 18, 13
This is a terrible quesiton
Saturday, May 18, 13
Why is it terrible?
Saturday, May 18, 13
Why is it terrible?
• Lack of context
Saturday, May 18, 13
Why is it terrible?
• Lack of context
• Are we talking about average or a percentile?
Saturday, May 18, 13
Why is it terrible?
• Lack of context
• Are we talking about average or a percentile?
• Server side time or client?
Saturday, May 18, 13
Why is it terrible?
• Lack of context
• Are we talking about average or a percentile?
• Server side time or client?
• Who is measuring it?
Saturday, May 18, 13
Why is it terrible?
• Lack of context
• Are we talking about average or a percentile?
• Server side time or client?
• Who is measuring it?
• When is it being measured?
Saturday, May 18, 13
Why is it terrible?
• Lack of context
• Are we talking about average or a percentile?
• Server side time or client?
• Who is measuring it?
• When is it being measured?
• Real users or synthetic?
Saturday, May 18, 13
We still have to answer it
Saturday, May 18, 13
Pick Tight SLAs
“The homepage of our site will load in
<300ms at the 80th percentile, measured
by sampling 10% of our real users over a
24 hour period every day at 8AM.”
Saturday, May 18, 13
Pick Tight SLAs
“The homepage of our site will load in
<300ms at the 80th percentile, measured
by sampling 10% of our real users over a
24 hour period every day at 8AM.”
Saturday, May 18, 13
Things to Remember
Saturday, May 18, 13
Things to Remember
• Measure and monitor your application
Saturday, May 18, 13
Things to Remember
• Measure and monitor your application
• Focus on big wins
Saturday, May 18, 13
Things to Remember
• Measure and monitor your application
• Focus on big wins
• Run the latest (stable) version of PHP
Saturday, May 18, 13
Things to Remember
• Measure and monitor your application
• Focus on big wins
• Run the latest (stable) version of PHP
• Make sure you are using APC correctly
Saturday, May 18, 13
Things to Remember
• Measure and monitor your application
• Focus on big wins
• Run the latest (stable) version of PHP
• Make sure you are using APC correctly
• It’s always the database (stay in this room)
Saturday, May 18, 13
Things to Remember
• Measure and monitor your application
• Focus on big wins
• Run the latest (stable) version of PHP
• Make sure you are using APC correctly
• It’s always the database (stay in this room)
• Caching is your friend
Saturday, May 18, 13
Things to Remember
• Measure and monitor your application
• Focus on big wins
• Run the latest (stable) version of PHP
• Make sure you are using APC correctly
• It’s always the database (stay in this room)
• Caching is your friend
• Know what system resources you depend on
Saturday, May 18, 13
There is a lot more to talk about
Saturday, May 18, 13
Get in Touch
http://web-performance.meetup.com/
www.etsy.com/careers
jonathan@etsy.com
@jonathanklein
Saturday, May 18, 13

More Related Content

What's hot

Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hosterCombell NV
 
Less and faster – Cache tips for WordPress developers
Less and faster – Cache tips for WordPress developersLess and faster – Cache tips for WordPress developers
Less and faster – Cache tips for WordPress developersSeravo
 
Going crazy with Varnish and Symfony
Going crazy with Varnish and SymfonyGoing crazy with Varnish and Symfony
Going crazy with Varnish and SymfonyDavid de Boer
 
WordPress Theme and Plugin Optimization - WordPress Arvika March '14
WordPress Theme and Plugin Optimization - WordPress Arvika March '14WordPress Theme and Plugin Optimization - WordPress Arvika March '14
WordPress Theme and Plugin Optimization - WordPress Arvika March '14slobodanmanic
 
Developing cacheable PHP applications - PHPLimburgBE 2018
Developing cacheable PHP applications - PHPLimburgBE 2018Developing cacheable PHP applications - PHPLimburgBE 2018
Developing cacheable PHP applications - PHPLimburgBE 2018Thijs Feryn
 
A reviravolta do desenvolvimento web
A reviravolta do desenvolvimento webA reviravolta do desenvolvimento web
A reviravolta do desenvolvimento webWallace Reis
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!WordCamp Cape Town
 
Use Xdebug to profile PHP
Use Xdebug to profile PHPUse Xdebug to profile PHP
Use Xdebug to profile PHPSeravo
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuningVladimír Smitka
 
How to deploy & optimize eZ Publish
How to deploy & optimize eZ PublishHow to deploy & optimize eZ Publish
How to deploy & optimize eZ PublishKaliop-slide
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itOtto Kekäläinen
 
10 things every developer should know about their database to run word press ...
10 things every developer should know about their database to run word press ...10 things every developer should know about their database to run word press ...
10 things every developer should know about their database to run word press ...Otto Kekäläinen
 
A Forgotten HTTP Invisibility Cloak
A Forgotten HTTP Invisibility CloakA Forgotten HTTP Invisibility Cloak
A Forgotten HTTP Invisibility CloakSoroush Dalili
 
PyCon Russia 2014 - Auto Scale in the Cloud
PyCon Russia 2014 - Auto Scale in the CloudPyCon Russia 2014 - Auto Scale in the Cloud
PyCon Russia 2014 - Auto Scale in the CloudSimone Soldateschi
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...Otto Kekäläinen
 
Zendcon magento101
Zendcon magento101Zendcon magento101
Zendcon magento101Mathew Beane
 

What's hot (20)

Php through the eyes of a hoster
Php through the eyes of a hosterPhp through the eyes of a hoster
Php through the eyes of a hoster
 
Less and faster – Cache tips for WordPress developers
Less and faster – Cache tips for WordPress developersLess and faster – Cache tips for WordPress developers
Less and faster – Cache tips for WordPress developers
 
Going crazy with Varnish and Symfony
Going crazy with Varnish and SymfonyGoing crazy with Varnish and Symfony
Going crazy with Varnish and Symfony
 
WordPress Theme and Plugin Optimization - WordPress Arvika March '14
WordPress Theme and Plugin Optimization - WordPress Arvika March '14WordPress Theme and Plugin Optimization - WordPress Arvika March '14
WordPress Theme and Plugin Optimization - WordPress Arvika March '14
 
Developing cacheable PHP applications - PHPLimburgBE 2018
Developing cacheable PHP applications - PHPLimburgBE 2018Developing cacheable PHP applications - PHPLimburgBE 2018
Developing cacheable PHP applications - PHPLimburgBE 2018
 
A reviravolta do desenvolvimento web
A reviravolta do desenvolvimento webA reviravolta do desenvolvimento web
A reviravolta do desenvolvimento web
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!
 
Use Xdebug to profile PHP
Use Xdebug to profile PHPUse Xdebug to profile PHP
Use Xdebug to profile PHP
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
How to deploy & optimize eZ Publish
How to deploy & optimize eZ PublishHow to deploy & optimize eZ Publish
How to deploy & optimize eZ Publish
 
Search in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize itSearch in WordPress - how it works and howto customize it
Search in WordPress - how it works and howto customize it
 
DevOps for Developers
DevOps for DevelopersDevOps for Developers
DevOps for Developers
 
10 things every developer should know about their database to run word press ...
10 things every developer should know about their database to run word press ...10 things every developer should know about their database to run word press ...
10 things every developer should know about their database to run word press ...
 
Dev ops for developers
Dev ops for developersDev ops for developers
Dev ops for developers
 
Scalable talk notes
Scalable talk notesScalable talk notes
Scalable talk notes
 
A Forgotten HTTP Invisibility Cloak
A Forgotten HTTP Invisibility CloakA Forgotten HTTP Invisibility Cloak
A Forgotten HTTP Invisibility Cloak
 
PyCon Russia 2014 - Auto Scale in the Cloud
PyCon Russia 2014 - Auto Scale in the CloudPyCon Russia 2014 - Auto Scale in the Cloud
PyCon Russia 2014 - Auto Scale in the Cloud
 
10 common cf server challenges
10 common cf server challenges10 common cf server challenges
10 common cf server challenges
 
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...The 5 most common reasons for a slow WordPress site and how to fix them – ext...
The 5 most common reasons for a slow WordPress site and how to fix them – ext...
 
Zendcon magento101
Zendcon magento101Zendcon magento101
Zendcon magento101
 

Viewers also liked

Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP120bi
 
Architechture of a social network for 30M users
Architechture of a social network for 30M usersArchitechture of a social network for 30M users
Architechture of a social network for 30M usersFotostrana
 
PHP High Availability High Performance
PHP High Availability High PerformancePHP High Availability High Performance
PHP High Availability High PerformanceAmazee Labs
 
How to scale PHP applications
How to scale PHP applicationsHow to scale PHP applications
How to scale PHP applicationsEnrico Zimuel
 
JSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web DesignJSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web DesignJonathan Klein
 
Riding rails for 10 years
Riding rails for 10 yearsRiding rails for 10 years
Riding rails for 10 yearsjduff
 
Edge Conf Rendering Performance Panel
Edge Conf Rendering Performance PanelEdge Conf Rendering Performance Panel
Edge Conf Rendering Performance PanelJonathan Klein
 
EscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationEscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationJonathan Klein
 
UXFest - RUM Distillation 101
UXFest - RUM Distillation 101UXFest - RUM Distillation 101
UXFest - RUM Distillation 101Jonathan Klein
 
DIY Synthetic: Private WebPagetest Magic
DIY Synthetic: Private WebPagetest MagicDIY Synthetic: Private WebPagetest Magic
DIY Synthetic: Private WebPagetest MagicJonathan Klein
 
High Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling TechniquesHigh Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling TechniquesZendCon
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesJonathan Klein
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projectsIgnacio Martín
 
PHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your RESTPHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your RESTAdam Englander
 
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)Tammy Everts
 
How Shopify Scales Rails
How Shopify Scales RailsHow Shopify Scales Rails
How Shopify Scales Railsjduff
 
Improving PHP Application Performance with APC
Improving PHP Application Performance with APCImproving PHP Application Performance with APC
Improving PHP Application Performance with APCvortexau
 

Viewers also liked (18)

Scaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHPScaling a High Traffic Web Application: Our Journey from Java to PHP
Scaling a High Traffic Web Application: Our Journey from Java to PHP
 
Architechture of a social network for 30M users
Architechture of a social network for 30M usersArchitechture of a social network for 30M users
Architechture of a social network for 30M users
 
PHP High Availability High Performance
PHP High Availability High PerformancePHP High Availability High Performance
PHP High Availability High Performance
 
How to scale PHP applications
How to scale PHP applicationsHow to scale PHP applications
How to scale PHP applications
 
JSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web DesignJSDay 2013 - Practical Responsive Web Design
JSDay 2013 - Practical Responsive Web Design
 
Riding rails for 10 years
Riding rails for 10 yearsRiding rails for 10 years
Riding rails for 10 years
 
Edge Conf Rendering Performance Panel
Edge Conf Rendering Performance PanelEdge Conf Rendering Performance Panel
Edge Conf Rendering Performance Panel
 
EscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend OptimizationEscConf - Deep Dive Frontend Optimization
EscConf - Deep Dive Frontend Optimization
 
UXFest - RUM Distillation 101
UXFest - RUM Distillation 101UXFest - RUM Distillation 101
UXFest - RUM Distillation 101
 
DIY Synthetic: Private WebPagetest Magic
DIY Synthetic: Private WebPagetest MagicDIY Synthetic: Private WebPagetest Magic
DIY Synthetic: Private WebPagetest Magic
 
PHP On Steroids
PHP On SteroidsPHP On Steroids
PHP On Steroids
 
High Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling TechniquesHigh Performance Php My Sql Scaling Techniques
High Performance Php My Sql Scaling Techniques
 
BTV PHP - Building Fast Websites
BTV PHP - Building Fast WebsitesBTV PHP - Building Fast Websites
BTV PHP - Building Fast Websites
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projects
 
PHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your RESTPHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your REST
 
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)
How Slow Load Times Hurt Your Bottom Line (And 17 Things You Can Do to Fix It)
 
How Shopify Scales Rails
How Shopify Scales RailsHow Shopify Scales Rails
How Shopify Scales Rails
 
Improving PHP Application Performance with APC
Improving PHP Application Performance with APCImproving PHP Application Performance with APC
Improving PHP Application Performance with APC
 

Similar to PHPDay 2013 - High Performance PHP

Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupJonathan Klein
 
Developing web applications in 2010
Developing web applications in 2010Developing web applications in 2010
Developing web applications in 2010Ignacio Coloma
 
High Performance WordPress - WordCamp Jerusalem 2010
High Performance WordPress - WordCamp Jerusalem 2010High Performance WordPress - WordCamp Jerusalem 2010
High Performance WordPress - WordCamp Jerusalem 2010Barry Abrahamson
 
Spreadshirt Techcamp 2018 - Hold until Told
Spreadshirt Techcamp 2018 - Hold until ToldSpreadshirt Techcamp 2018 - Hold until Told
Spreadshirt Techcamp 2018 - Hold until ToldMartin Breest
 
Tips for a Faster Website
Tips for a Faster WebsiteTips for a Faster Website
Tips for a Faster WebsiteRayed Alrashed
 
Optimizing CakePHP 2.x Apps
Optimizing CakePHP 2.x AppsOptimizing CakePHP 2.x Apps
Optimizing CakePHP 2.x AppsJuan Basso
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End PerformanceChris Love
 
Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Wim Godden
 
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...John McCaffrey
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuningJohn McCaffrey
 
Phpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and MinkPhpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and MinkRichard Tuin
 
What's new in PHP 5.5
What's new in PHP 5.5What's new in PHP 5.5
What's new in PHP 5.5Tom Corrigan
 
Performance Tuning Web Apps - The Need For Speed
Performance Tuning Web Apps - The Need For SpeedPerformance Tuning Web Apps - The Need For Speed
Performance Tuning Web Apps - The Need For SpeedVijay Rayapati
 
What is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWhat is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWPSFO Meetup Group
 
Are Today's Good Practices… Tomorrow's Performance Anti-Patterns
Are Today's Good Practices… Tomorrow's Performance Anti-PatternsAre Today's Good Practices… Tomorrow's Performance Anti-Patterns
Are Today's Good Practices… Tomorrow's Performance Anti-PatternsAndy Davies
 
International Site Speed Tweaks - ISS 2017 Barcelona
International Site Speed Tweaks - ISS 2017 BarcelonaInternational Site Speed Tweaks - ISS 2017 Barcelona
International Site Speed Tweaks - ISS 2017 BarcelonaBastian Grimm
 
Caching and tuning fun for high scalability @ PHPTour
Caching and tuning fun for high scalability @ PHPTourCaching and tuning fun for high scalability @ PHPTour
Caching and tuning fun for high scalability @ PHPTourWim Godden
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By DesignTim Morrow
 
HTML5 is the future of mobile
 HTML5 is the future of mobile HTML5 is the future of mobile
HTML5 is the future of mobileSergi Mansilla
 

Similar to PHPDay 2013 - High Performance PHP (20)

Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP MeetupWeb Performance, Scalability, and Testing Techniques - Boston PHP Meetup
Web Performance, Scalability, and Testing Techniques - Boston PHP Meetup
 
Developing web applications in 2010
Developing web applications in 2010Developing web applications in 2010
Developing web applications in 2010
 
High Performance WordPress - WordCamp Jerusalem 2010
High Performance WordPress - WordCamp Jerusalem 2010High Performance WordPress - WordCamp Jerusalem 2010
High Performance WordPress - WordCamp Jerusalem 2010
 
Spreadshirt Techcamp 2018 - Hold until Told
Spreadshirt Techcamp 2018 - Hold until ToldSpreadshirt Techcamp 2018 - Hold until Told
Spreadshirt Techcamp 2018 - Hold until Told
 
Tips for a Faster Website
Tips for a Faster WebsiteTips for a Faster Website
Tips for a Faster Website
 
Optimizing CakePHP 2.x Apps
Optimizing CakePHP 2.x AppsOptimizing CakePHP 2.x Apps
Optimizing CakePHP 2.x Apps
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
 
Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012
 
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
Ruby on Rails Performance Tuning. Make it faster, make it better (WindyCityRa...
 
Windy cityrails performance_tuning
Windy cityrails performance_tuningWindy cityrails performance_tuning
Windy cityrails performance_tuning
 
Phpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and MinkPhpday - Automated acceptance testing with Behat and Mink
Phpday - Automated acceptance testing with Behat and Mink
 
What's new in PHP 5.5
What's new in PHP 5.5What's new in PHP 5.5
What's new in PHP 5.5
 
Performance Tuning Web Apps - The Need For Speed
Performance Tuning Web Apps - The Need For SpeedPerformance Tuning Web Apps - The Need For Speed
Performance Tuning Web Apps - The Need For Speed
 
What is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress HostingWhat is Nginx and Why You Should to Use it with Wordpress Hosting
What is Nginx and Why You Should to Use it with Wordpress Hosting
 
Are Today's Good Practices… Tomorrow's Performance Anti-Patterns
Are Today's Good Practices… Tomorrow's Performance Anti-PatternsAre Today's Good Practices… Tomorrow's Performance Anti-Patterns
Are Today's Good Practices… Tomorrow's Performance Anti-Patterns
 
International Site Speed Tweaks - ISS 2017 Barcelona
International Site Speed Tweaks - ISS 2017 BarcelonaInternational Site Speed Tweaks - ISS 2017 Barcelona
International Site Speed Tweaks - ISS 2017 Barcelona
 
Caching and tuning fun for high scalability @ PHPTour
Caching and tuning fun for high scalability @ PHPTourCaching and tuning fun for high scalability @ PHPTour
Caching and tuning fun for high scalability @ PHPTour
 
Shopzilla - Performance By Design
Shopzilla - Performance By DesignShopzilla - Performance By Design
Shopzilla - Performance By Design
 
HTML5 is the future of mobile
 HTML5 is the future of mobile HTML5 is the future of mobile
HTML5 is the future of mobile
 
Web Performance Optimization (WPO)
Web Performance Optimization (WPO)Web Performance Optimization (WPO)
Web Performance Optimization (WPO)
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationZilliz
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Alison B. Lowndes
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

PHPDay 2013 - High Performance PHP

Editor's Notes

  1. Not a general improvement - test YOUR site
  2. Halfway through, SLOW DOWN!
  3. Talk about how APC is local to the machine
  4. HipHop VM has made development easier