Performance Chat Summary: 31 October 2023

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

Announcements

  • Welcome to our new members of #core-performance
  • WordPress 6.4 Release Candidaterelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 3 is tomorrow
  • The Performance Hallway Hangout blogblog (versus network, site) post has been updated with a recording of the session

Priority Projects

Server Response Time

Link to roadmap projects and link to the GitHub project board

Contributors: @joemcgill @swissspidy @thekt12 @mukesh27 @pereirinha

  • @joemcgill One of the focuses for 6.5 will looking at several tickets related to improving template loading: https://github.com/WordPress/performance/issues/746
  • @thekt12 As a part of 746, – Created a PoC to test out if persistent cache better than default function for checking files_exists #59314 ( PR#5597 ).
    Need to get some numbers for that
  • @joemcgill As we’ve talked about this exploration, one of the things that came up was the need to come up with a solid approach for cache invalidation, if we do find that the effort is worth pushing forward. Somewhat related, we have #59719 that would be great to get feedback on from anyone interested
  • @pereirinha as for #59595 there’s already a PR and some feedback to look into. The proposed solution is to use object caching. The CPU impact and the wall time are greatly improved, but there’s the memory cost. I’ll be circling back on the feedback shortly

Database Optimization

Link to roadmap projects and link to the GitHub project board

Contributors: @mukesh27 @thekt12

  • @mukesh27 I’ve been working on #56912, but it appears that this ticketticket Created for both bug reports and feature development on the bug tracker. is no longer valid. Some options have been autoloaded in WordPress 6.3, while the remaining options are not loaded in WordPress. Therefore, we should proceed to close this ticket. We are awaiting feedback from Jonny before finalizing the decision.
    • @joemcgill We can give it a couple days to see if @spacedmonkey has anything to add, but think it’s ok to close if you and @flixos90 agree, since Jonny’s been away
  • @brianhenryie On the templates caching, I see it’s using file_exists() but elsewhere in WP I see is_readable() which is more correct, and presumably slightly slower.
    • @joemcgill I think the current implementation is simply for testing purposes, but would you mind adding a comment to the ticket so we remember to review that?

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.

Link to roadmap project and link to the GitHub project board

Contributors: @mukesh27 @10upsimon @westonruter

  • No updates this week

Images

Link to roadmap projects and link to the GitHub project board

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill @pereirinha @westonruter

  • @westonruter I’ve got an initial PR open to introduce an “Image Loading Optimization” module for the 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 WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. In addition to having scaffolding for the module, this PR also introdues output buffering for template renders as well as a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/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. manipulating the output buffer prior to flushing. Reviews for this PR would be appreciated so it can be merged. This will then be used in subsequent PRs for the module to optimize the loading of images (and other things). For example, I have an early draft PR for the detection logic to determine which image is LCP and which images should not be lazy-loaded. See overview issue.

Measurement

Link to roadmap projects and link to the GitHub project board

Contributors: @adamsilverstein @joemcgill @mukesh27 @swissspidy @flixos90

  • @swissspidy For the metrics stabilization exploration I did share some preliminary findings the other day based on my testing. I’m a bit out of options right now as I don’t think I’ve found a magic bullet that just eliminates any variance, so I’d appreciate some eyes there.
  • @joemcgill Related to measurement, I reported here yesterday some observations I made about the automated benchmarking workflow we’ve been experimenting with during this release. Discovering that running benchmarks on the two themes sequentially, was causing the classic theme results to be skewed. I’ve opened a PR on @swissspidy‘s repo that allows you to choose which theme you want to test, as one approach to avoiding that issue.

Ecosystem Tools

Link to roadmap projects and link to the GitHub repo

Contributors: @mukesh27 @swissspidy @westonruter

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

Open Floor

  • n/a

Our next chat will be held on Tuesday, November 7, 2023 at 16:00 UTC in the #core-performance channel in Slack.

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