Performance Chat Summary: 12 December 2023

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

Announcements

Priority Projects

Server Response Time

Link to roadmap projects and link to the GitHub project board

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

  • @thekt12 update on various items:
  • @joemcgill Essentially, block variations for several dynamic blocks are built dynamically on every request, but from what we can tell, they’re only needed in the editor, so we should be able to support registering a callable that will dynamically build the variations when requested. I’d like to get feedback from someone on the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ side more familiar with how these are consumed (e.g., @mamaduka, etc).

Database Optimization

Link to roadmap projects and link to the GitHub project board

Contributors: @mukesh27 @thekt12

  • No updates this week

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 @flixos90 @westonruter

  • @flixos90 I drafted a module proposal for the Speculation Rules APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. integration last week: https://github.com/WordPress/performance/issues/897
    • The formerly experimental draft PR has been polished to become the foundation for that new module: https://github.com/WordPress/performance/pull/733
      It’s targeting a feature branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". as it’s not yet the entire MVPMinimum Viable Product "A minimum viable product (MVP) is a product with just enough features to satisfy early customers, and to provide feedback for future product development." - WikiPedia module functionality yet, as outlined in the module proposal issue

Images

Link to roadmap projects and link to the GitHub project board

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

  • @westonruter For Image Loading Optimization, the pull request for improved breadcrumb handling of images to optimize is still ready for review.
    • I have a sub-PR off of that in which I’m nearing full PHPUnit test coverage. Hopefully I’ll complete this today and it will also be ready for review.
    • After these are reviewed and merged, I’m eager to enhance with background-image optimization. I’ll probably start with a sub-PR while waiting for the above to be merged.
  • @flixos90 I wonder whether we should focus on getting the module ready for launch first before moving on to another feature like BG image support. I feel like optimizing <img> tags is the primary focus here, so probably sufficient for an MVP
  • @westonruter It won’t be much additional code though and the groundwork is in place, so that’s why I want to target it.
  • @flixos90 Sounds good, we can assess further in the PR, that’s helpful to have regardless
  • @flixos90 From my side, I ran a couple queries last week to kick off further field research on fetchpriority accuracy problems: https://colab.sandbox.google.com/drive/1KCowq4J2oPnxmjXjQVTpO5d6sC9qi8s1 At this point I’ve only gathered some data, and I still have to think further what to make of it or what else to query. But it’s a good starting point I think
    • The approach for these queries was to only consider URLs that have the same LCP image element for both desktop and mobile, as that’s the only problem vector we can address with the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. functionality. If the LCP element differs, it’s more difficult and can’t be addressed with the fetchpriority="high" attribute. That part is covered by the image loading optimization module @westonruter has been working on
  • @swissspidy Regarding images, I have been working on this client-side image compression project a little bit: https://x.com/swissspidy/status/1733138082591912154?s=46&t=f5Z4bXmUuYQYdSgET7F2UQ
  • @swissspidy Speaking of fetchpriority, that just landed in Safari 17.2 yesterday

Measurement

Link to roadmap projects and link to the GitHub project board

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

  • No updates this week

Ecosystem Tools

Link to roadmap projects and link to the GitHub repo for 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 Checker

Contributors: @mukesh27 @swissspidy

  • No updates this week

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27

Open Floor

  • @pbearne I have replied/updated the Disable autoload for large options 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. https://core.trac.wordpress.org/ticket/42441

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

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