SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Use Xdebug to profile PHP
Premium hosting
and upkeep for
WordPress
HTTP/2
TESTED
UPDATES
24/7 UPKEEP
Top-notch performance
A comparison published by a
Google employee at
ismyhostfastyet.com
confirms that Seravo’s
customer sites load faster
than competing services’.
The study used
time-to-first-byte (TTFB)
measurement data from real
users as collected from the
Chrome browser UX data. Fast/Average/Slow TTFB by WordPress Host
Seravo recommends Xdebug
● Xdebug is open source: github.com/xdebug/xdebug
● Embraced by the PHP community
● Plenty of features: profiling, stack traces, debugging..
● Included in Linux distributions, easy to install
● Pre-installed in many development environments
○ Varying Vagrant Vagrants (for WordPress core contributors)
■ xdebug_on
○ Seravo WordPress Vagrant and Docker images (for Seravo’s customers)
■ wp-xdebug-on
What on earth is PHP doing?!
Finding the code bottlenecks is
hard without proper tools.
Solution:
● Profile PHP code with
Xdebug
● Browse results with
Webgrind
● Visualize code path with
Gprof2dot and Dot
All WordPress site
developers should learn
Xdebug
It is
easy!
Very easy with Seravo WordPress dev
● Enable by running: wp-xdebug-on
● Run profiler on any URL easily by appending one
parameter
○ E.g. https://wordpress.local/?XDEBUG_PROFILE
● Files are generated at /tmp/cachegrind.out.x.y.z
● Browse results with Webgrind
○ E.g. http://wordpress.local/.seravo/webgrind/
Documentation at seravo.com/docs/development/xdebug/
DEMO
Typical issues: database
Typically developers don’t test
their plugins with large amounts
of data and they work well on
small sites.
As sites grow, all problems related
to excess data manipulation
become visible.
Solution:
● Inject more data on a test site
and see how it behaves.
● In code, don’t fetch
everything from the database.
Remember LIMIT in SQL and
posts_per_page in WP_Query.
● Design code to fetch only
what is needed for the view,
nothing else.
Switch to
Polylang
for faster
page loads
Typical issues: HTTP requests
External API calls in PHP
typically also block the entire
site from loading if the
external API is down.
Solution:
● Review use of wp_remote_get(),
fopen() and similar
● Store result and avoid re-fetching it all
the time using WP Transients API
Use WP Transients API
Store the result of a heavy/slow computation to avoid having to do it all
the time (e.g. HTTP requests or heavy database queries):
More at: seravo.com/blog/faster-wordpress-with-transients/
and developer.wordpress.org/apis/handbook/transients/
Extra helper: wp-speed-test
vagrant@development:~$ wp-speed-test
Testing speed URL https://wordpress.local...
For an explanation of the different times, please see docs at https://curl.haxx.se/docs/manpage.html
URL TOTAL NAMELOOKUP CONNECT APPCONNECT PRETRANSFER STARTTRANSFER = AVG
https://wordpress.local 0.179 0.004 0.004 0.014 0.014 0.179 0.179
https://wordpress.local 0.154 0.000 0.000 0.000 0.000 0.154 0.167
https://wordpress.local 0.157 0.000 0.000 0.000 0.000 0.157 0.164
https://wordpress.local 0.167 0.000 0.000 0.000 0.000 0.167 0.164
https://wordpress.local 0.163 0.000 0.000 0.000 0.000 0.162 0.169
https://wordpress.local 0.147 0.000 0.000 0.000 0.000 0.147 0.168
https://wordpress.local 0.169 0.000 0.000 0.000 0.000 0.169 0.168
https://wordpress.local 0.178 0.000 0.000 0.000 0.000 0.178 0.168
https://wordpress.local 0.167 0.000 0.000 0.000 0.000 0.167 0.168
Test completed. If the values seems too high, please profile your PHP code to find potential
bottlenecks. Note that this test tells how fast your site is in the sense of how long it takes for PHP
to generate the HTML output. To test how much load the site can handle, run wp-load-test.
Hunt for random slowness
$ wp-speed-test https://wordpress.local/hello-world/?XDEBUG_PROFILE
Testing speed URL https://wordpress.local/hello-world/?XDEBUG_PROFILE...
For an explanation of the different times, please see docs at https://curl.haxx.se/docs/manpage.html
URL TOTAL NAMELOOKUP CONNECT APPCONNECT PRETRANSFER STARTTRANSFER = AVG
https://wordpress.local/hel... 0.637 0.004 0.004 0.013 0.013 0.636 0.637
https://wordpress.local/hel... 0.469 0.000 0.000 0.000 0.000 0.468 0.553
https://wordpress.local/hel... 0.512 0.000 0.000 0.000 0.000 0.511 0.539
https://wordpress.local/hel... 0.484 0.000 0.000 0.000 0.000 0.483 0.525
https://wordpress.local/hel... 0.483 0.000 0.000 0.000 0.000 0.482 0.517
https://wordpress.local/hel... 0.556 0.000 0.000 0.000 0.000 0.555 0.524
https://wordpress.local/hel... 0.910 0.000 0.000 0.000 0.000 0.908 0.640
https://wordpress.local/hel... 0.496 0.000 0.000 0.000 0.000 0.495 0.633
https://wordpress.local/hel... 0.475 0.000 0.000 0.000 0.000 0.474 0.625
16 MB
Always remember to measure
before and after!
seravo.com/docs
Instructions for
WordPress site
developers
Lots of tips out there!
The database is often the
performance bottleneck. See my
other talk on WordPress and
database optimization:
More in-depth code profiling tips
in my WordPress performance
talk:
wordpress.tv/?s=otto+kekäläinen
See also
Make Your Site Faster with Caching
https://seravo.com/blog/wordpress-cache/
300% faster WordPress load times with transients
https://seravo.com/blog/faster-wordpress-with-transients/
5 common reasons why your WordPress site is slow
https://youtu.be/8sJExUO-U4A
Improving WordPress Performance with XDebug and PHP Profiling
https://youtu.be/oKcIS5A-6_c
Thank you!
Seravo.com @Seravo @ottokekalainen

Weitere ähnliche Inhalte

Was ist angesagt?

High Performance WordPress
High Performance WordPressHigh Performance WordPress
High Performance WordPress
vnsavage
 
Pagespeed what, why, and how it works
Pagespeed   what, why, and how it worksPagespeed   what, why, and how it works
Pagespeed what, why, and how it works
Ilya Grigorik
 

Was ist angesagt? (20)

Automatic testing and quality assurance for WordPress plugins
Automatic testing and quality assurance for WordPress pluginsAutomatic testing and quality assurance for WordPress plugins
Automatic testing and quality assurance for WordPress plugins
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!
 
Find WordPress performance bottlenecks with XDebug PHP profiling
Find WordPress performance bottlenecks with XDebug PHP profilingFind WordPress performance bottlenecks with XDebug PHP profiling
Find WordPress performance bottlenecks with XDebug PHP profiling
 
Scalable talk notes
Scalable talk notesScalable talk notes
Scalable talk notes
 
Scaling WordPress
Scaling WordPressScaling WordPress
Scaling WordPress
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themes
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
04 web optimization
04 web optimization04 web optimization
04 web optimization
 
Choosing a Web Architecture for Perl
Choosing a Web Architecture for PerlChoosing a Web Architecture for Perl
Choosing a Web Architecture for Perl
 
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
 
WPDay Bologna 2013
WPDay Bologna 2013WPDay Bologna 2013
WPDay Bologna 2013
 
Front end performance optimization
Front end performance optimizationFront end performance optimization
Front end performance optimization
 
High Performance WordPress
High Performance WordPressHigh Performance WordPress
High Performance WordPress
 
Pagespeed what, why, and how it works
Pagespeed   what, why, and how it worksPagespeed   what, why, and how it works
Pagespeed what, why, and how it works
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
Front End Performance
Front End PerformanceFront End Performance
Front End Performance
 
WordCamp Finland 2015 - WordPress Security
WordCamp Finland 2015 - WordPress SecurityWordCamp Finland 2015 - WordPress Security
WordCamp Finland 2015 - WordPress Security
 
High Performance Wordpress: “Faster, Cheaper, Easier : Pick Three”
High Performance Wordpress: “Faster, Cheaper, Easier : Pick Three”High Performance Wordpress: “Faster, Cheaper, Easier : Pick Three”
High Performance Wordpress: “Faster, Cheaper, Easier : Pick Three”
 
DrupalCon Barcelona 2015
DrupalCon Barcelona 2015DrupalCon Barcelona 2015
DrupalCon Barcelona 2015
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 

Ähnlich wie Use Xdebug to profile PHP

2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real
PHP Conference Argentina
 

Ähnlich wie Use Xdebug to profile PHP (20)

Scraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHPScraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHP
 
Optimizing WordPress PHP performance with Tideways
Optimizing WordPress PHP performance with TidewaysOptimizing WordPress PHP performance with Tideways
Optimizing WordPress PHP performance with Tideways
 
Building dynamic websites with Mod perl and apache
Building dynamic websites with Mod perl and apacheBuilding dynamic websites with Mod perl and apache
Building dynamic websites with Mod perl and apache
 
Profiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / WebgrindProfiling PHP with Xdebug / Webgrind
Profiling PHP with Xdebug / Webgrind
 
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
 
Using the new WordPress REST API
Using the new WordPress REST APIUsing the new WordPress REST API
Using the new WordPress REST API
 
Automated Tasks for WordPress
Automated Tasks for WordPressAutomated Tasks for WordPress
Automated Tasks for WordPress
 
Improving WordPress Performance: Xdebug and PHP profiling
Improving WordPress Performance: Xdebug and PHP profilingImproving WordPress Performance: Xdebug and PHP profiling
Improving WordPress Performance: Xdebug and PHP profiling
 
Caching 101
Caching 101Caching 101
Caching 101
 
Php
PhpPhp
Php
 
2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real2013 - Dustin whittle - Escalando PHP en la vida real
2013 - Dustin whittle - Escalando PHP en la vida real
 
Mastering WordPress Vol.1
Mastering WordPress Vol.1Mastering WordPress Vol.1
Mastering WordPress Vol.1
 
PHP BASIC PRESENTATION
PHP BASIC PRESENTATIONPHP BASIC PRESENTATION
PHP BASIC PRESENTATION
 
Scaling PHP apps
Scaling PHP appsScaling PHP apps
Scaling PHP apps
 
T2 Web Framework
T2 Web FrameworkT2 Web Framework
T2 Web Framework
 
ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4ApacheConNA 2015: What's new in Apache httpd 2.4
ApacheConNA 2015: What's new in Apache httpd 2.4
 
Madison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small TeamsMadison PHP 2015 - DevOps For Small Teams
Madison PHP 2015 - DevOps For Small Teams
 
Using PHP with IBM Bluemix
Using PHP with IBM BluemixUsing PHP with IBM Bluemix
Using PHP with IBM Bluemix
 
ZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small TeamsZendCon 2015 - DevOps for Small Teams
ZendCon 2015 - DevOps for Small Teams
 

Kürzlich hochgeladen

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Kürzlich hochgeladen (20)

%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 

Use Xdebug to profile PHP

  • 1. Use Xdebug to profile PHP
  • 2. Premium hosting and upkeep for WordPress HTTP/2 TESTED UPDATES 24/7 UPKEEP
  • 3. Top-notch performance A comparison published by a Google employee at ismyhostfastyet.com confirms that Seravo’s customer sites load faster than competing services’. The study used time-to-first-byte (TTFB) measurement data from real users as collected from the Chrome browser UX data. Fast/Average/Slow TTFB by WordPress Host
  • 4. Seravo recommends Xdebug ● Xdebug is open source: github.com/xdebug/xdebug ● Embraced by the PHP community ● Plenty of features: profiling, stack traces, debugging.. ● Included in Linux distributions, easy to install ● Pre-installed in many development environments ○ Varying Vagrant Vagrants (for WordPress core contributors) ■ xdebug_on ○ Seravo WordPress Vagrant and Docker images (for Seravo’s customers) ■ wp-xdebug-on
  • 5. What on earth is PHP doing?! Finding the code bottlenecks is hard without proper tools. Solution: ● Profile PHP code with Xdebug ● Browse results with Webgrind ● Visualize code path with Gprof2dot and Dot
  • 6. All WordPress site developers should learn Xdebug It is easy!
  • 7. Very easy with Seravo WordPress dev ● Enable by running: wp-xdebug-on ● Run profiler on any URL easily by appending one parameter ○ E.g. https://wordpress.local/?XDEBUG_PROFILE ● Files are generated at /tmp/cachegrind.out.x.y.z ● Browse results with Webgrind ○ E.g. http://wordpress.local/.seravo/webgrind/ Documentation at seravo.com/docs/development/xdebug/
  • 9. Typical issues: database Typically developers don’t test their plugins with large amounts of data and they work well on small sites. As sites grow, all problems related to excess data manipulation become visible. Solution: ● Inject more data on a test site and see how it behaves. ● In code, don’t fetch everything from the database. Remember LIMIT in SQL and posts_per_page in WP_Query. ● Design code to fetch only what is needed for the view, nothing else.
  • 11. Typical issues: HTTP requests External API calls in PHP typically also block the entire site from loading if the external API is down. Solution: ● Review use of wp_remote_get(), fopen() and similar ● Store result and avoid re-fetching it all the time using WP Transients API
  • 12. Use WP Transients API Store the result of a heavy/slow computation to avoid having to do it all the time (e.g. HTTP requests or heavy database queries): More at: seravo.com/blog/faster-wordpress-with-transients/ and developer.wordpress.org/apis/handbook/transients/
  • 13. Extra helper: wp-speed-test vagrant@development:~$ wp-speed-test Testing speed URL https://wordpress.local... For an explanation of the different times, please see docs at https://curl.haxx.se/docs/manpage.html URL TOTAL NAMELOOKUP CONNECT APPCONNECT PRETRANSFER STARTTRANSFER = AVG https://wordpress.local 0.179 0.004 0.004 0.014 0.014 0.179 0.179 https://wordpress.local 0.154 0.000 0.000 0.000 0.000 0.154 0.167 https://wordpress.local 0.157 0.000 0.000 0.000 0.000 0.157 0.164 https://wordpress.local 0.167 0.000 0.000 0.000 0.000 0.167 0.164 https://wordpress.local 0.163 0.000 0.000 0.000 0.000 0.162 0.169 https://wordpress.local 0.147 0.000 0.000 0.000 0.000 0.147 0.168 https://wordpress.local 0.169 0.000 0.000 0.000 0.000 0.169 0.168 https://wordpress.local 0.178 0.000 0.000 0.000 0.000 0.178 0.168 https://wordpress.local 0.167 0.000 0.000 0.000 0.000 0.167 0.168 Test completed. If the values seems too high, please profile your PHP code to find potential bottlenecks. Note that this test tells how fast your site is in the sense of how long it takes for PHP to generate the HTML output. To test how much load the site can handle, run wp-load-test.
  • 14. Hunt for random slowness $ wp-speed-test https://wordpress.local/hello-world/?XDEBUG_PROFILE Testing speed URL https://wordpress.local/hello-world/?XDEBUG_PROFILE... For an explanation of the different times, please see docs at https://curl.haxx.se/docs/manpage.html URL TOTAL NAMELOOKUP CONNECT APPCONNECT PRETRANSFER STARTTRANSFER = AVG https://wordpress.local/hel... 0.637 0.004 0.004 0.013 0.013 0.636 0.637 https://wordpress.local/hel... 0.469 0.000 0.000 0.000 0.000 0.468 0.553 https://wordpress.local/hel... 0.512 0.000 0.000 0.000 0.000 0.511 0.539 https://wordpress.local/hel... 0.484 0.000 0.000 0.000 0.000 0.483 0.525 https://wordpress.local/hel... 0.483 0.000 0.000 0.000 0.000 0.482 0.517 https://wordpress.local/hel... 0.556 0.000 0.000 0.000 0.000 0.555 0.524 https://wordpress.local/hel... 0.910 0.000 0.000 0.000 0.000 0.908 0.640 https://wordpress.local/hel... 0.496 0.000 0.000 0.000 0.000 0.495 0.633 https://wordpress.local/hel... 0.475 0.000 0.000 0.000 0.000 0.474 0.625 16 MB
  • 15. Always remember to measure before and after!
  • 17. Lots of tips out there! The database is often the performance bottleneck. See my other talk on WordPress and database optimization: More in-depth code profiling tips in my WordPress performance talk: wordpress.tv/?s=otto+kekäläinen
  • 18. See also Make Your Site Faster with Caching https://seravo.com/blog/wordpress-cache/ 300% faster WordPress load times with transients https://seravo.com/blog/faster-wordpress-with-transients/ 5 common reasons why your WordPress site is slow https://youtu.be/8sJExUO-U4A Improving WordPress Performance with XDebug and PHP Profiling https://youtu.be/oKcIS5A-6_c
  • 19. Thank you! Seravo.com @Seravo @ottokekalainen