SlideShare uma empresa Scribd logo
1 de 123
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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)
 

Último

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Último (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

PHPDay 2013 - High Performance PHP

Notas do Editor

  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