Performance Chat Summary: 1 November 2022

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

Announcements

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: On the AVIF front, it looks like Apple is building support right into WebKit, which means AVIFs will work on older iOSiOS The operating system used on iPhones and iPads./MacOS as long as users upgrade Safari (currently support depends on the underlying OS). See https://github.com/WebKit/WebKit/pull/5669. The coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. ticketticket Created for both bug reports and feature development on the bug tracker. is https://core.trac.wordpress.org/ticket/51228; the only outlier for AVIF support is now Microsoft Edge. In addition to 50%+ improvement over JPEG compression, AVIF images add support for HDR on the web; a contributor linked some sample images from the TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticket that are quite impressive.
  • @adamsilverstein: When working on the PR for setting fetchpriority=high on the non-lazy-loaded LCP image, noticed the first image on 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 isn’t having the lazy-loading attribute omitted as expected. Opened #56930 and PR #3538 to resolve; reviews appreciated. Also related: #56927, #55996.
  • @mehulkaklotar: Working on some improvements to Performance Lab:
    • Issue #560 – PR #565 – WebP upload configuration checkbox not showing in Settings > Media 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 -> Merged
    • Issue #563 – PR #571 – Change default WebP quality to 82
  • @masteradhoc: Any updates on WebP?
    • @adamsilverstein: There has been some communication with Matt, repeating what he said on his post about concerns about WebP not being ready to be default mostly because it is hard to use outside of the web context. Hopefully in the future we’ll be able to get this kind of feedback earlier in a feature’s lifecycle. To move WebP further, we would need to address the underlying issue, either by improving ecosystem compatibility (which is happening naturally over time) or by improving browser capabilities (e.g. save as JPEG).
    • @spacedmonkey: In multisite, we used to proxy all attachments through PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher. Could we do that here? Proxy to see if there is WebP support, and if not, return JPEG. Has its downsides but thinking out loud.
      • @adamsilverstein: Didn’t know about that; could potentially only handle “missing” images that way using htaccess
      • @spacedmonkey: It’s still part of core: https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/ms-files.php
    • @masteradhoc: Could we open a ticket in the Chromium GH for save as JPEG to see if they could add? Would help the biggest part of the web.
    • @flixos90: We can’t really solve the problem in a clean way in WP though, since the right-click Save As behavior can’t be modified via PHP or JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.. Wish browsers supported some way of achieving a JPEG download of a WebP image on the web, e.g. if you use a <picture> element it could be default download as JPEG even when WebP is served in the browser. Or there could be some kind of download-src attribute.
      • @rmccue: Have run into this while serving images dynamically, no great way to handle
      • @flixos90: Looking to see if there’s anyone we can work with on this internally at Google

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

  • @spacedmonkey: Tickets:
    • https://core.trac.wordpress.org/ticket/56923
    • https://github.com/WordPress/gutenberg/issues/45309
    • https://github.com/WordPress/wordpress-develop/pull/3528
    • https://github.com/WordPress/wordpress-develop/pull/3544
    • https://github.com/WordPress/wordpress-develop/pull/3534
  • @spacedmonkey: Reviewed performance in 6.1-RC3 and updated results here; looking good. FSE themes are still slower than classic themes. Created some tickets related to issues found; have been working on https://github.com/WordPress/wordpress-develop/pull/3540.
  • @flixos90: Also did an analysis on RC3 last week; major improvement over RC1 and RC2. Still a few areas that were slightly worse than 6.0, but some of that is due to added functionality. Still a few quirks where regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. is noticeably worse, namely in the wp_head action. Have tracked down the particular change that makes wp_head slower even in classic themes; PR with a potential fix here: https://github.com/WordPress/wordpress-develop/pull/3536.
  • @spacedmonkey: Biggest issue is that class is static methods and variables, which makes it hard to review and test.

Feedback requested

Measurement

N/A

GitHub project

  • @adamsilverstein: Digging back into the testing environment work that started awhile ago to see what we can pick up and use and what an 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 could look like. Still researching/documenting, but more to come.

Feedback requested

JS & CSSCSS Cascading Style Sheets.

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

  • @mxbclang: @aristath is continuing to work on the SQLite integration module in https://github.com/WordPress/performance/pull/547; feedback welcome
  • @spacedmonkey: Thoughts on running core unit tests against SQLite, similar to how tests are run against memcache? Could allow the tests to fail for now, but would highlight where we need to fix issues.
    • @adamsilverstein: Great idea, curious about performance as well
    • @spacedmonkey: Is this Trac or 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.?
    • @adamsilverstein: Neither, Performance Lab only right now; proposal here
    • @spacedmonkey: Yes, but add official support for testing against SQLite, so in the test run, install the drop-in for SQLite and run tests
    • @adamsilverstein: I see, I think that is still core since it’s all in the main develop repo
    • @spacedmonkey: Will create a ticket for this

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: Planning to review https://github.com/WordPress/performance/pull/566 today, which brings the focus areas up-to-date.
  • @mehulkaklotar: I have worked on issue #561 – PR #570 – Investigate unexpected input Warning message during release build process -> Needs review and testing both

Feedback requested

Our next chat will be held on Tuesday, November 8, 2022 at 10am EST in the #core-performance channel in Slack.

#core-js, #core-media, #performance, #performance-chat, #summary, #hosting-community

#meta