Performance Chat Summary: 30 May 2023

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

Announcements

  • Blogblog (versus network, site) post was published outlining the WordPress 6.2 server performance analysis summary to identify the biggest opportunities to target for future performance enhancements
  • All the lazy-loading PRs were committed last week
  • Notable inclusion in 6.3 #58394 resulting in ~7% faster 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 and 2% faster classic themes (full results)
    • FWIW, this was one of the issues identified in the server performance analysis, so it’s really nice to see it already being addressed.
  • @swissspidy committed two minor changes to i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. that slightly improve performance in some cases:

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

  • @joemcgill Other than the analysis already posted, I don’t have any further update, other than wanting to identify some epics out of that work that we can start to take action on.

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

  • 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

  • @10upsimon Enhancing the Script 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. with a loading strategy update:
    • Most of the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. PR feedback items that are unrelated to the topic of defer/async dependencies and inline scripts have been addressed.
    • Actioning of remaining points of feedback are largely pending the outcome of a final strategic decision around handling deferred and async dependencies, and inline scripts attached to defer/async scripts.
    • Discussions around how best to solve the above are ongoing, with POC’s currently being developed.
  • @joemcgill For the initial design for this feature, we intended to support all current use cases that the Script Loader supported, including support for inline scripts when added to a script handle. @westonruter and @10upsimon have been making good progress on improving that implementation, and it would be useful to have the proposed iteration completed, even if we decide to remove those enhancements for the initial commit.
    • However, I think we’re close to needing to make a decision about what belongs in the initial commit and what can be left for further iteration. Hopefully we can finalize those decisions this week.

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • No updates this week

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger For the Plugin Checker, we are working on the final iterations on the last issue for Milestone 1. Once complete, we will start work on the second phase which will be implementing the initial checks that will be included as part of the plugins first release. You can follow the progress on the GitHub repo here. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @joemcgill Until we have all of the modules published as standalone plugins, we’re blocked on the eventual removal of those modules being bundled with 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, which is still the plan.
    • @mukesh27 We already release two plugins can we start removing those from PL?
    • @joemcgill We can start working on the process, but I think we’ll wait on a PL release that removes all of them until we’ve got the UIUI User interface and migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. path really figured out.
    • @mukesh27 Is there any way to get approval for Dominant Colour Images as it blocks Milestone 2 work?
    • @joemcgill Nope. Just wait our turn in line, just like all the other plugins
    • @flixos90 I think the main priority beyond waiting for the approval is to scope out what we want the user experience for Milestone 2 to be like. We then have to implement that and ship it to allow users to migrate before we actually remove the modules
    • @joemcgill Agreed. And, admittedly, a lot of us have been focused on landing some priority features from our roadmap early this release cycle

Open Floor

  • A question was posted against the agenda this week asking if we can take a look at https://core.trac.wordpress.org/ticket/49278
    • @joemcgill From a quick read of that ticketticket Created for both bug reports and feature development on the bug tracker., it sounds like @peterwilsoncc and @costdev previously determined that the current 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. still needs some work before it’s ready to land in core.
    • Not sure if @markparnell is interested in picking this back up, or someone else, but it would need to be ready for another review pretty soon if we wanted to land it in 6.3.
    • @mukesh27
      • Query before (38 seconds)
      • Query after (0.0028 seconds)
      • The improvement is significant as per the ticket description
    • @joemcgill MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. queries are a complex part of the API and needs to be handled with care. There are times with meta queries that optimizations are proposed where really the design of a WP_Query needs to be reconsidered (not sure about this case).
    • There are many other proposals in  TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets that are focused at improving performance of meta queries as well, like adding an extra index to core, etc.
    • @spacedmonkey Any change would need a lot of unit tests. Unit tests for all query classes. So post, term, comment, site and user.

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

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