Performance Chat Summary: 7 March 2023

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

Announcements

  • Proposed update to our chat structure for future weeks to be focused more around our 2023 performance roadmap
    • @flixos90 Focusing on the roadmap items sounds great to me. I’d say some of those points are rather broad though, maybe we can still go a bit more granular per project. There’s also some projects on the roadmap that are well underway while others are merely ideas that may not see a lot of updates soon, so we need to think about how to balance that
      • @clarkeemily I think that would be the plan, to dive more into those sub-bullet point per priority as listed in our roadmap (sorry, should have clarified that!)
    • This was agreed – for future meetings, the agenda will be structured below, with the goal of diving deeper into each roadmap priority sub-project
      • Announcements
      • Roadmap priorities:
        • Server response time
        • Database optimization
        • 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.
        • Images
        • Measurement
        • Ecosystem tools
      • Infrastructure
      • Open floor

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 and once done we’ll have a working plugin with some initial checks. At that point we’ll be taking the time to do some initial testing, review the infrastructure and make any changes before working on the additional checks. You can see progress on the GitHub repo here. Feel free to leave any thoughts/ideas you may have in the repo too!
  • @mukesh27 Automated performance testing has been committed to the WP core repo https://core.trac.wordpress.org/changeset/55459
    • @joemcgill The first run of the new performance workflow ran perfectly, except for successfully posting results to the codevitals.run dashboard. I assume it’s because we either have an incorrect project token or some other change was made to the 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. there. I’ll follow up with @youknowriad to get this working when he’s back around. Regardless, this is pretty cool to see (copied over from Mar 3)

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • @10upsimon update on WRT Script Loading Strategy:
    • Trac Ticket 12009 has been updated with a comment describing the work being carried out, and brief instructions on where and how to follow progress. We encourage early feedback.
    • Work on milestone 2 issues has been completed, and all code approved, unit tested and functionally tested. Further holistic testing is underway but is not a blockerblocker A bug which is so severe that it blocks a release. to progress.
    • Milestone 3 work is underway and tracking well.
    • We continue Investigating potential interoperability issues to assess how developers most commonly solve for the async and defer script applications in the absence of this enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. that is underway, so that we can better understand if and how we need to potentially solve for this in the interest of preserving the work we are doing in core, and being mindful of backward compatibility.

Feedback requested

Database

@olliejones

GitHub project

  • @olliejones Work continues on the SQLite project. Starting to look at popular plugins with their own SQL. (Thousands of them.) Trying to get the top ten to work. (WooCommerce, Yoast, etc).
    • The work is happening in the standalone repo. Migrating to the monorepo is still in the future.
    • @spacedmonkey You can use https://wpdirectory.net/ to find plugins that do custom database queries

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @mukesh27 started working on milestone 1 tasks for creating a standalone plugin.
    • PR 662 for implementing CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. command for a build process to transform modules into standalone plugins is ready for review
    • @flixos90 I’ll give the above another review today, really excited to see it moving forward

Feedback requested

Open Floor

  • @olliejones Is there any intentional liaison between us and #hosting-community
    • @spacedmonkey I know the hosting community is keeping on eye on our work, see https://wordpress.slack.com/archives/C3D6T7F8Q/p1677695456489839
    • @spacedmonkey I meet with some hosting companies at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Asia, but we could do a better job at building bridges between these teams.
      • @olliejones Can you persuade your contacts to lurk here, or identify themselves? Would love to know what they wish they had from performance.
    • @olliejones I would really like to have a conversation with a couple of hosting dbms-ops people, to learn more about their problems and how we can help address them.
    • @spacedmonkey there are people like @desrosj (Bluehost) and @mikeschroder (GoDaddy) that might be able to help
    • @johnbillion that’s a conversation worth having with agencies too
    • @spacedmonkey Humanmade does a lot of hosting with their platform
    • @spacedmonkey can make some intros to help @olliejones
  • @tillkruess raised a concern over comments on https://github.com/WordPress/performance/issues/132
    • @spacedmonkey The TLDR of 132, is that as we support older version of DBs, we can’t rollout the indexes? Can we do a progressive enhancement for newer DBs?
    • @olliejones To oversimplify, (191) indexes don’t do what big sites need. “Progressive enhancement” means “two versions of the database definition”. Is there testing capability? https://www.plumislandmedia.net/index-wp-mysql-for-speed/wordpresss-prefix-keys/ is a writeup on the topic.
    • @spacedmonkey There are other examples of progressive enhancements in core. And there is a different schema for the user table for multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site for example. Any thoughts on progressive enhancements like this @johnbillion
    • @tillkruess I’m strongly in favor of databases indices as an opt-in feature.
    • @olliejones In schema.php we’d put if (the database uses the barracuda storage engine ) { lots of data definition language }
    • @johnbillion The answer I always give when talking about introducing optional features is, is the intended user capable of making an informed decision about whether or not to enable the feature? If the “user” in this context is a large scale web host then yes, if the “user” is a freelance integrator without much SQL experience then no. So if we can guide an informed decision to be made then I’m in favor of these indices enhancements being opt-in, as much as I’m not a fan of differing schemas the benefit outweighs that here IMO

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

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