Performance Chat Summary: 30 April 2024

Meeting agenda here and the full chat log is available beginning here on Slack.


Priority Items


  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the Plugin Directory or can be cost-based plugin from a third-party (and other performance plugins)
  • 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:
    • @joemcgill For our auto-loading improvents, #42441, I owe @pbearne feedback on a draft of the dev-note (planning to do so this week). I also left some feedback on the follow-up issue (#61045) that needs to be addressed, and then I think that is ready for commit.
      • @pbearne I need feedback on this as I went through coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and set the autoload for all update_options. If i felt they were adminadmin (and super admin) only options i set them to off
      • @joemcgill I think that’s a useful idea, but we should probably handle that in a separate issue/PR
      • @pbearne in an attempt to reduce options load on the front-end
    • @spacedmonkey I want to try and get committed in the next couple of days. Just waiting on final feedback from @peterwilsoncc
    • @spacedmonkey also working on It needs tests.
      • The wp_prime_network_options  function is an example of where it might not have a direct benefit out of the box. It is a developer api and would enable plugins to “do the right thing” I prime multiple networknetwork (versus site, blog) options caches at once.
    • @thekt12 I have started a new PR 6463 for caching #57789 (not ready for review). I was trying to see if we could cache before filterFilter Filters are one of the two types of Hooks They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. to avoid unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. failures but seems that doing so only give 0.01% improvement.
      • At the moment I am trying to cache inside WP_Theme_JSON_Data::__construct and WP_Theme_JSON::__construct as they are the one with major regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.

Performance Lab Plugin (and other Performance Plugins)

  • @westonruterPR is ready for review which allows performance features to have plugin dependencies. This is needed for Image Prioritizer which depends on Optimization Detective. With this PR merged, the work on Image Prioritizer can press forward full steam.
  • @mukesh27 I worked on Progress indicator is missing when activating a feature and it has been merged! Requires a follow up though from this comment
  • @joemcgill For the 3.1.0 milestone, we have one issue that needs an owner to move forward: @westonruter were you planning to pick that up from Felix, or do we need someone else to help move this forward?
  • @westonruter Both Speculative Loading (PR merged) and Optimization Detective (PR pending merge, review please) will be able to be embedded in other plugins or themes to increase adoption. This is more relevant to Optimization Detective since it is lower-level plumbing which optimization plugins can leverage, and Speculative Loading is getting popular.
    • Also for Speculative Loading, there’s a PR open to add a filter for whether speculation rules are printed and default to not printing when the user is logged-in non-admin or PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher session is active. Could use additional eyes to confirm the approach. Should there be a checkbox for whether to enable for logged-in users? Also, perhaps Speculative Loading should add a Site Health check for when PHP sessions are being used on the frontend so a user can be aware why it doesn’t seem to be doing anything?

Active Priority Projects

Improve template loading

  • @joemcgill There are really only three issues remaining in this project, #59595, #59600, and #57789 (which we already discussed and is probably the most important next step).

INP research opportunities

Improving the calculation of image size attributes

  • @joemcgill I spent some time updating the overview issue for Improving Images sizes, and began filling in some details. This project covers two main efforts to improve the way WP calculates sizes:
    • Improving the default sizes algorithm (accounting for layout)
    • Implement the auto-sizes HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. spec (already handed by the auto-sizes plugin)
  • Rather than creating a whole separate performance feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. for developing the improvements to the default sizes algorithm, I think it makes sense to combine all of this into the original auto-sizes plugin.
  • In addition, I created an issue to track the work needed to measure and track the impact of these changes, in which I link to the latest data we were able to query from HTTPArchive as a baseline.
  • @joemcgill has assigned one issue to @mukesh27

Optimized autoloaded options

  • Updates covered in WordPress 6.6 item above

Open Floor

  • @mukesh27 Is there any plan to merge in core?
    • @spacedmonkey The blockerblocker A bug which is so severe that it blocks a release. for the above was at the lack of action to.
    • it is all well and good highlighting that there are 20 options that are very large, but with no way to fix it, a user it out of luck. I had planned to have a way of changing options to be from being autoloaded or not. Think checkbox and rest apiREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) to update the row in the database. I haven’t had anytime to look at now I am not sponsored.

Our next chat will be held on Tuesday, May 7, 2024 at 15:00 UTC in the #core-performance channel in Slack.

#core-performance, #performance, #performance-chat, #summary