Performance Chat Summary: 3 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
  • The 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 Check repo is officially moved to the WordPress organization at https://github.com/WordPress/plugin-check
  • WordPress 6.4 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 2 is today
  • Benchmark results on 6.4 beta 1
    • Here are some 6.4 Beta 1 benchmarks that @mukesh27 @joemcgill and @flixos90 ran over the past few days (using the https://github.com/swissspidy/compare-wp-performance tool by @swissspidy )
    • Results show excellent improvements on the server-side especially for classic themes, with improvements between 15% and 30%
    • For blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes, server side performance appears to be improved as well, though not as clearly
    • For overall LCP performance things are looking good for classic themes, but there may be a small 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. for block themes. It’s small so we’re not entirely sure about it, but since the server performance is better for block themes, I suspect that there is a regression in client-side performance of block themes
      • For example, here in Joe’s benchmark the LCP-TTFB (client-side) regression for block themes is clearly visible: https://docs.google.com/spreadsheets/d/1JvOSMS8HKnSLDYgzrUgwm_xgA3vtXQ9O7g3yMH8Sqao/edit, and same in my benchmarks here https://gist.github.com/felixarntz/ac1ecebe22f3beda970db07440cfdb08
      • In Mukesh’s benchmarks it is still slightly positive, which confirms once again that unfortunately at least the Web Vitals tooling still has a lot of variance
      • Felix thinks we should conduct a few more benchmarks especially focusing on client-side performance of block themes to make more sense of this data. Is there a real regression, or is it just variance and client-side performance is fine?
      • @joemcgill was pleasantly surprised to see such large improvements for classic themes. Do we have any assumptions as to what contributed to the large improvements?
      • @flixos90 I honestly don’t know. Neither for what contributed to the large improvements, nor what contributed to the potential client-side regression. I was surprised as well, since I didn’t encounter as major server-side improvements in individual tickets as in 6.3 and 6.2. I don’t know if that’s because we benchmarked fewer PRs manually this time, or if something in the benchmarks shared above is off

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath @swissspidy @thekt12 @mukesh27

  • @joemcgill Most of this week has been focused on landing some of the final tickets for 6.4. I did just get some feedback on some of the Theme JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. caching work we started earlier in this cycle, that will carry into 6.5
  • @mukesh27 has been working on the refactoring of unit tests for issue #22192 , and is pleased to inform that it has now been committed. Additionally, he currently working on a follow-up issue to address backward compatibility (BC) concerns, and will be opening a PR for that shortly.

Database Optimization

Link to roadmap projects

Contributors: @spacedmonkey @mukesh27 @thekt12

  • @thekt12 updates are as follows:
    • Good for review #59442
    • Planning to conduct some more research on just the WP_Query part #59492 related to larger issue #59516
  • @pbearne would like some help testing/measuring the Autoload override code he has been working on
    • seeing values like these
      • 63 options loaded/used instead of an all options count of 122
      • Plus the 63 included 3 options that were not set to be autoload or not in options
      • We used 77881 bytes saving 2868 bytes from the autoload of 80749 bytes with empty site and default themes
    • I have created a gist for now
      https://gist.github.com/pbearne/ce21417bf5ecfa10b84afc758092cd9f

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

Contributors: @mukesh27 @10upsimon @westonruter @spacedmonkey

  • @westonruter completed his review and amending of the ticketticket Created for both bug reports and feature development on the bug tracker. to remove unload event handlers: #55491
    • Weston approved the pull request but it would really benefit from someone else who has experience with ancient code in WordPress

Images

Link to roadmap projects

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

Measurement

Link to roadmap projects

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

  • No updates this week

Ecosystem Tools

Link to roadmap projects

Contributors: @mukesh27 @swissspidy @westonruter

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @10upsimon Regarding new UI to manage standalone plugins and built-in modules:
    • Done some slight refactoring to address linting issues
    • Noticed a bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. when there is a plugin update, which I am time boxing to sort out
    • Appears to be related to global pagenow  var, so working on a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. to see if we can safely override this when on the PL > Settings screen
    • Failing that, we can push back the update functionality to another ticket as per @flixos90 suggestion

Open Floor

  • No updates for today

Our next chat will be held on Tuesday, October 10, 2023 at 15:00 UTC in the #core-performance channel in Slack.

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