Performance Chat Summary: 18 April 2023
Meeting agenda here and the full chat log is available beginning here on Slack.
Announcements
- 2.2.0 was released yesterday
- UPDATED from agenda: fetchpriority standalone plugin is still under review (not ‘approved’ as originally thought)
Priority Projects
Server Response Time
Contributors: @joemcgill @spacedmonkey @aristath
- @joemcgill Happy to say that I’m back from some time off with two fully working arms, and am hopeful I’ll be able to publish some results from the profiling research I was doing earlier.
- @spacedmonkey I have been reviewing @aristath autoloading PR. It is nearly there.
- One thing that would help is this – https://core.trac.wordpress.org/ticket/57832
- @flixos90 What about the performance implications of autoloading? I believe that was still an open question in regards to whether we should move forward with this
- @spacedmonkey Autoloading massively improve RAM usage. CPU, it is a little benefit at the moment.
- @flixos90 Obviously autoloading is a best practice, but I think we still need to assess what really are the benefits of it in WordPress core. Are there any benchmarks for those statements yet?
- @johnbillion There were some numbers on the PR but they could do with being updated
- @spacedmonkey https://github.com/WordPress/wordpress-develop/pull/3470#issuecomment-1490083546
- @flixos90 That’s a single profile though, right? There is so much variance in load time data, I think we need to do something a bit more comprehensive for the timing metrics. The 5.5 MB -> 5.15 MB looks promising though
- @spacedmonkey I haven’t done a tonne of benchmarking yet, it is a WIP.
- @flixos90 That’s fair, though I think we should do that sooner than later to be confident that this is actually a beneficial change for WordPress core. Also best to use medians from all the results
- @spacedmonkey What is the KPI here? CPU usage, response time, ram usage?
- @joemcgill Has there already been a merge proposal created for this change? Seems like something that would need broader communication and would be an opportunity to include performance data alongside the technical details?
- @johnbillion Would be good to see separate metrics for front end, wp-admin, REST API, too, hopefully improvements all around
- @spacedmonkey I am happy to run all those tests and provide data. As I say, it is WIP at the moment. I will wait until @aristath gets back to me and says it is good for a full review
Database Optimization
Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii
- @spacedmonkey I got this committed today
https://github.com/WordPress/wordpress-develop/commit/19bd759db57b4f1cc72157a446915ffbafdd838e- I created some issues on sqlite object cache plugin, as I am running it locally for testing.
- @olliejones I saw those sqlite object cache issues and will work on them.
- @spacedmonkey These need code review please
- https://github.com/WordPress/wordpress-develop/pull/4246
- https://github.com/WordPress/wordpress-develop/pull/4153
- Both are related to each other and one covers the other.
JavaScript & CSS
Contributors: @mukesh27 @10upsimon @adamsilverstein
- @10upsimon Regarding “Enhancing the WP Scripts API with a Loading Strategy”:
- Iteration is underway following the code review completed by several WPP team members
- This is now ready for another round of review here
Images
Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill
- No updates this week
Measurement
Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27
- @joemcgill I’m starting to collect some ideas for enhancements to the initial automated performance workflow we added last release and would be happy for any suggestions folks here have.
Ecosystem Tools
Contributors: @joegrainger
- @joegrainger for the Plugin Checker, we’re working through the issues raised as part of the milestone 1 Review/QA and making good progress. We’ll continue to be working through these as over the coming weeks. Progress can be seen on the GitHub repo here. Feel free to take a look and leave any thoughts/ideas you may have there. Thanks!
Creating Standalone Plugins
Contributors: @flixos90 @mukesh27 @10upsimon
- @mukesh27 I continue working on some follow-up issues and milestone 2 tasks
- @flixos90 At this point for milestone 1 we’re just waiting for plugin repo approval, then we can go ahead and publish the outstanding plugins Fetchpriority and Dominant Color Images
- @flixos90 We may also want to start coordinating how we’re going to re-integrate the SQLite repository into the monorepo, cc @aristath
- For the latter, we would be good to publish from the
WordPress/performance
repository any time now since the main effort has been completed - @joemcgill Seems like that should be handled before we release a version of the performance lab plugin that removes the related module
- @flixos90 Absolutely, that would only be part of Milestone 2
- @flixos90 asked @aristath Do you have an update on https://github.com/WordPress/performance/pull/677? Is that ready for another review?
- @flixos90 I wonder what is left beyond the above PR in order to sync the two codebases. At some point soon we should probably code-freeze the standalone GitHub repository and make
WordPress/performance
the source of truth again, that way we’ll work in one codebase only, and we can publish from there a new version to WP.org any time
- For the latter, we would be good to publish from the
New Projects / Proposals
- @spacedmonkey I am looking into the autoloaded options in WordPress. I am just getting up to speed.
- Wonder if anyone here, as any thoughts on the matter. Articles, plugins or other work arounds I should look at as part of my research
- One route I am looking into, is stop using the single autoload cache key and make it so each option using it’s own cache key. We can now use
wp_cache_get_multiple
to prime all autoloaded caches in one go. - @joemcgill Have we done any research into how many WordPress sites are able to make use of the benefits that get/set_multiple functions provide?
- @spacedmonkey I have been looking at differnt object caching plugins
- Sadly, many of them do not seem to implement
wp_cache_get_multipl
e
- But many of these are the list have not been updated in 5+ years, it is hard to know if they are still being used. I made a mega list – https://github.com/stars/spacedmonkey/lists/object-caching-plugins
- @joemcgill Nice. I think it would be good for us to keep track of those numbers. Not that this should keep us from trying to optimize the caching of options, but it would help us better understand impact and ensure that any changes we make to support multi-cached options don’t create a regression for folks whose hosting doesn’t support those features.
- @spacedmonkey memcache and redis support multiple gets, it is just a matter of updating plugins to support it as well. We have
wp_cache_supports
in core. I wonder if we could get any data from that. We have some sites on WordPress sites php etc.
Open Floor
- No updates
Our next chat will be held on Tuesday, April 25, 2023 at 15:00 UTC in the #core-performance channel in Slack.