Performance Chat Summary: 20 June 2023

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

Announcements

  • Welcome to our new members of #core-performance [Slack thread]
  • Release 2.4.0 scheduled for later today
    • Agreed to postpone this to Tuesday June 20 to support several team members being out for the US holiday
  • Upcoming 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. 1 for the 6.3 release on Tuesday June 27, 2023
  • Updates to our CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Performance Handbook with the introduction of the Profiling PHP performance with XHProf article

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones

  • 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

Contributors: @mukesh27 @10upsimon @adamsilverstein @westonruter

  • @joemcgill For Script Loading Strategy: https://core.trac.wordpress.org/ticket/12009
    • Most of the PR for adding support for `async` and `defer` has been approved for commit. Unfortunately, keeping in support for inline scripts is blocking the current PR, so we’re going to remove that part of the implementation this week and commit the rest. This just means that if anyone tries to add an `async` or `defer` strategy to a handle that has an inline script attached in an `after` position, the original script will be loaded with a blocking strategy instead.
    • @spacedmonkey I code reviewed the above and approved it for commit
    • @joemcgill we will likely ask for another review once we’ve implemented the changes
    • @10upsimon Nothing more from my side, I’ll be working with @joemcgill on the reversal of delayed after inline scripts, and further testing
    • @spacedmonkey Should we talk about the comment – https://github.com/WordPress/wordpress-develop/pull/4391#issuecomment-1598421109 . Or leave it open floor. I think this should be in core and I want to work out a path to unblock it
    • @10upsimon this is the same level of push back we’re receiving on the Trac ticket itself. It’s a long standing aversion to support delayed inline scripts. I’d like to see it in core as well, if possible.
    • @joemcgill I think we’ve exhausted this conversation for now. The focus this week should be to get the majority of this feature committed and we can advocate for extending support for inline scripts during the beta period.
    • @spacedmonkey Could it be commit before the beta and then if we can resolve the inline style stuff, then we can do a part revert?
    • @joemcgill Andrew has indicated in the PR thread that we could continue that conversation during the beta period, yes

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • @adamsilverstein Some recent developments on the modern image front: the new version of Safari includes JpegXL support which was a bit of a surprise and somewhat exciting. If other browsers follow suit, maybe the format will become useful for the web and WordPress?! In addition, Edge canary has apparently added AVIF support, so we will hopefully see all major browsers supporting AVIF soon.  I created 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 add AVIF support to core on the existing ticketticket Created for both bug reports and feature development on the bug tracker. that is ready for testing –  https://core.trac.wordpress.org/ticket/51228
  • @thekt12 and @flixos90 are also working on finalising https://github.com/WordPress/wordpress-develop/pull/4495 this week
    • @spacedmonkey I have been code review and profiling this. We are awaiting a new version that improves PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher performance.

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @joemcgill Over the weekend, the Theme 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. data that we rely on briefly went offline and broke the automated performance tests in Core. There is an open ticket about bringing that code directly into our repo, rather than relying on the Theme Unit Test data, but there is also conversation happening about moving all of that code into the WP organization. Original thread: https://wordpress.slack.com/archives/C02RQBWTW/p1687140431658569 For now, I don’t think we need to take immediate action, but is something to consider over the coming weeks.

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger @mukesh27

  • @joegrainger We are working on the last check for Milestone 2 for the Plugin Checker. Once complete we’ll be moving onto further QA/Testing and remediating over this week and next. Progress can be seen on the GitHub repo here. Feel free to take a look and leave any thoughts/ideas you may have in the repo. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @flixos90 Still awaiting approval of the Dominant Color Images 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 the plugin repo

Open Floor

  • @spacedmonkey This ticket has been very active – https://core.trac.wordpress.org/ticket/58368
    • TLDR, WP_Commey_Query does count queries using order by, resulting in bad performance. Comment type is not a database index.
    • @joemcgill That ticket needs an owner and and agreed upon patch in the next week. Seems like a stretch at the moment.
    • @spacedmonkey I am not sure we can add indexes easily to a table like comments. The person on the ticket has 5 million comments in this database. Adding an index normally locks a table on a high traffic like that, it could be a problem. I think we will have to puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) to 6.4. I will update the ticket.
      • @rmccue I think we’ve added indexes on large tables before, seem to recall .com needing to orchestrate a slow rollout of them
  • @joemcgill Do we know who is ensuring the fix for https://core.trac.wordpress.org/ticket/58457 is getting synced from 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/ repo? This process still seems very manual and error prone to me.
  • @spacedmonkey Would useful to get eyes on – https://github.com/WordPress/gutenberg/pull/51116

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

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