Performance Chat Summary: 16 April 2024

Meeting agenda here and the full chat log is available beginning here on Slack.
Announcements
- Welcome to our new members of #core-performance
- The team launched the Performance Lab plugin version 3.0.0 on Mon April 15
Structure:
- WordPress performance Trac tickets
- Current release (WP 6.6)
- Performance Lab plugin (and other performance plugins)
- Final decision regarding streamlining PL plugin and other standalone plugins #1061
- Active priority projects
- Improve template loading
- INP research opportunities
- Improving the calculation of image size attributes
- Optimized autoloaded options
WordPress Performance Trac Tickets
- For WordPress 6.6:
- Nothing to discuss this week
Performance Lab Plugin (and other Performance Plugins)
- Final decision regarding streamlining PL plugin and other standalone plugins #1061
- @thelovekesh added a workflow diagram on the issue itself and had some initial conversation with @swissspidy as well.
- In the new workflow, we will be aiming to automate the other chores like:
- auto creation of a release branch
- raise a PR on the trunk from the release branch which will be having updated since tags and bumped version.
- renaming of milestone and creating a next milestone.
- @mukesh27 has the following PR ready for review PR #1148 – Warning notice about read-only file system remove even when all plugins are installed
- @westonruter For Speculative Loading, I learned about an issue yesterday where WooCommerce links to add-to-cart and remove-from-cart are erroneously being prefetched/prerendered. WooCommerce shouldn’t be using links for these UI elements, but such is WP.
- The PRs to fix the issues have been merged and I’m wanting to do a release of Speculative Loading today
Active Priority Projects
Improve template loading
- @thekt12 ticket #59595 – PR#6392 is good for some initial review and feedback. Findings and reasoning behind each changes is added to PR description and inline comments. In TT4 homepage, I can see 4% improvement for non persistent cache and 6% improvement for site with persistent cache.
- @thekt12 In #59600,
INP research opportunities
- @adamsilverstein created this top level issue to track the work: https://github.com/WordPress/performance/issues/1120
- opened a few core tickets about adopting the Interactivity API to replace jQuery (#60986 #60985 and #60987) These are open for contributions if anyone wants to get a chance to try the Interactivity API out.
- created a sheet with the list of scripts identified in the audits and have started to inventory which themes/plugins have public GitHub repositories we can contribute to.
- created a PR to add custom metrics to httparchive so we can track adoption of the Interactivity API and I also started exploring adding performance instrumentation to the Interactivity API, so we can debug performance issues with callbacks.
Improving the calculation of image size attributes
- @joemcgill I have an update on https://github.com/WordPress/performance/issues/760
- One of the first steps to this project is to get a baseline of what the impact of inaccurate
sizes
attributes have on the web. I’ve updated an earlier HTTPArchive query that was created a few years ago to get some of that info, and am planning to work with @adamsilverstein on some additional ways to measure the impact of any changes we make. - I’ll plan on creating a bit of a roadmap for how we can improve the
sizes
attribute via a Performance Lab project once we’re happy with how to measure this.
- One of the first steps to this project is to get a baseline of what the impact of inaccurate
Optimized autoloaded options
- @swissspidy we have this long-standing module proposal for optimizing autoloaded options however @joostdevalk just published something very similar. So I was thinking that maybe we should collaborate
- @joostdevalk I’ve done (in what’s probably a pretty rough way) something similar to what @swissspidy proposed in his ticket too; measure which options are used, remove autoload from those that aren’t used
- I was kinda shocked by the results on some sites, going from multiple megabytes of options to 2-300 KB
- I do still think though that maybe we should look at more aspects. We currently only have autoload yes and no, and I’ve basically always thought it’s weird that we don’t use the fact that it’s a string to also allow other contexts, like
admin
- Anyway, my code is there, happy to look at it together with someone and build something for performance labs
- @joostdevalk One other thing related to options; the impact of a “miss” on an option that’s supposed to be autoloaded is actually way higher, as that always results in a DB query. If we could get a way to prevent that from happening, by having a
get_autoloaded_option
or something like that, I think the impact could be quite big.
- @joemcgill For 6.6, we just added some functionality in #42441 that could be useful for automating some of this. After that change, any new option that is added can have its autoload value determined based on some additional criteria. For example, in that issue disables autoloading for large options if they weren’t explicitly added while passing
true
to the autoload param. - @pbearne asked @joostdevalk have you looked #347 code
Open Floor
- @spacedmonkey I have a new patch for #59442
- https://github.com/WordPress/wordpress-develop/pull/6393
- TDLR – Cache key generation in WP_Query results in duplicate queries is the cache keys do not match. I have fixed 3/4 examples of where cache keys do no match even through the queries are the same.
- Asked for a PR review please
- @benoir Yesterday, a new version of WebP upload was released. The plugin was renamed because he gonna evolve by accepting the AVIF format. Is there a PR or something about this evolution? I think this new version need to be able to convert JPEG, PNG and WebP into AVIF https://github.com/WordPress/performance/issues/371
- @joemcgill The issue that resulted in the name change is https://github.com/WordPress/performance/issues/1046.
Our next chat will be held on Tuesday, April 23, 2024 at 15:00 UTC in the #core-performance channel in Slack.