Performance Chat Summary: 21 February 2023

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

Announcements

  • Team rep nomination reminder, please add your nominations for Performance Team RepTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. by Friday, February 24 2023
  • Next steps on sharing the public roadmap for 2023 now the GitHub issue has been closed
  • Next steps on creating standalone plugins [summarized in this GitHub issue]
    • The performance team received feedback from Matt and Josepha regarding the 3 approaches in this comment
    • @flixos90 As such, we should move forward with option 2. While that’s not the same option we initially voted for, I think that’s still a great option, and it’s great that we now have a clear path forward
      • As mentioned before, Option 2 is technically a bit more work than Option 1, but it effectively includes the work we would need to do for Option 1 as well. So I think it makes sense to do this work in two stages
      • @flixos90 has opened a couple of follow up issues as well as this overview issue to keep track of all the work: https://github.com/WordPress/performance/issues/656
      • Call to please review and share any ideas or feedback you have on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ (either in the overview issue if it’s high level feedback, or on the specific issues if it’s a more concrete feedback regarding one of the tasks)
      • The idea is that for milestone 1, which is already fairly well defined, to get it across the finish line by end of March
      • So at that point we would have the standalone plugins available already, which is a big step regarding the overall effort

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Measurement

N/A

GitHub project

  • @joegrainger we are working towards completing the infrastructure for 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 Checker over the coming weeks. Once done we will reach a major milestone where we’ll have a working plugin running with some initial checks. You can see progress on the GitHub repo here. Feel free to leave any thoughts/ideas you may have in that repo too.
  • @joemcgill sharing on behalf of @mukesh27 who is out for WC Asia
    • he is very close to having the automated performance measurements workflow implementation for WP CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. ready to share. There is one new requirement that needs to be addressed, which we discovered when coordinating with @youknowriad about logging data with the dashboard he’s set up at https://www.codevitals.run/project/2. Hoping to have that wrapped up later this week.
  • @joemcgill Also, I opened an initial draft PR for adding XHProf support directly in the wp-env package. I’m planning on making updates to that approach this week that would simplify setting up XHGui for analyzing profiling data, but am already able to use this setup to do profiling of WP, which has been useful in testing for possible regressions in 6.2.

Feedback requested

JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. & CSSCSS Cascading Style Sheets.

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

  • @olliejones work proceeds on the SQLite integration
  • @clarkeemily spotted a few new issues added recently re. SQLite integration which I added to the [Focus] Database label [see here]
  • @joemcgill There were also a few issues that came up during the Performance Lab release party yesterday, that I wanted to make sure we get added

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90 No updates from my end, other than the news I already shared about creating standalone plugins and unbundling the Performance Lab plugin, and that version 2.0.0 was released yesterday

Feedback requested

Open Floor

  • @olliejones The drop-in method of loading run-early code is reaching the limit of its flexibility. And the workarounds are, imho, too brittle to release broadly; they’ll drive site owners ’round the bend.
  • A lot of this performance work will depend on run-early code. Can we imagine a more extensibleExtensible This is the ability to add additional functionality to the code. Plugins extend the WordPress core software. way of handling it that will work better when, say, 50% of all sites use SQLite, and they all use other drop-in activated features?
  • It will likely take some sort of core change to improve this corner of WordPress. What’s the process for working out all that stuff?
  • It might be as simple as modifying the mu-plugin load order so some of them load early.
    • @joemcgill I think it’s a great question, and one that we could begin thinking about by focusing on examples of where the current functionality of WP is limiting our ability to deliver the kind of user-facing improvements we’re trying to make. If solving an underlying architectural issue unblocks a whole lot of other improvements, then I think it’s worth prioritizing, but hard to say without concrete examples.
    • @olliejones the following come to mind:
      • Collisions between the performanceServer timing part of PL and various persistent object caches.
      • Collision between Query Monitor and the SQLite integration
      • And, conceptually it should be possible to run both Query Monitor and SQLite integration, and activate/deactivate them in whatever order the site owner wants. (except obvs deactivating SQLite on a install that uses it would break it.). The same logic applies to object caching.
    • @olliejones to create an issue to capture next steps here
  • @joemcgill flagged a critical issue to address this week https://core.trac.wordpress.org/ticket/57150 

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

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