Performance team meeting summary 4 October 2022


Meeting agenda here and the full chat log is available beginning here on Slack.
Announcements
- @shetheliving: Mission and philosophies review
- Drafting a Handbook for our site and would like to include overall mission for the team
- Please review and leave comments on the doc with your thoughts
Focus group updates
Images
@adamsilverstein @mikeschroder
- @adamsilverstein: Not much to update, worked on a bug fix for #56442
- @eugenemanuilov: #524 to disable JPEG subsizes generation for WebP images has been updated based on feedback from @flixos90
- @mukesh27: Working on #525 to add a checkbox to the Media screen to enable multi-MIME type output, to match with the core WebP implementation
- @ankitgade: Working on background processing infrastructure related to image regeneration
- @khoipro: Any updates on SVG uploads?
- @shetheliving: No one is actively working on this at the moment, so anyone can pick it up if they have time https://github.com/WordPress/performance/issues/427
- @spacedmonkey: Not working on this right now, but may in the future. Biggest blocker is that the library that everyone uses for cleaning SVGs requires PHP 7+, so it would need to be forked/rewritten if we wanted backwards compatibility. If we wanted to make it a PHP 7+-only feature, it would make things a lot easier.
- @flixos90: WP hasn’t really done that before, but don’t think it’s a no-go as long as it’s a non-critical feature
- @spacedmonkey: PHP 5.6 is only 4% of WP installs, per https://wordpress.org/about/stats/
- @adamsilverstein: We already do something like this with server support for images where you can’t use a format unless your server supports it
- @flixos90: As long it gracefully falls back if unsupported and doesn’t break anything on older versions, would be totally onboard
- @khoipro: What about sanitize and escape file uploading, and styling SVG in media preview?
- @flixos90: Matt also mentioned a few years back that he would be open to WP offering certain features only to sites with HTTPS, kind of similar
- @spacedmonkey: The creator of the library was open to support, not sure how much work we would need to do to port back to 5.6
- @flixos90: Unless backporting would be super straightforward, I would say it’s not worth our effort and we make it 7+ only
- @ankitgade: We can analyze what issues we see on 5.6 to evaluate how difficult this would be
Feedback requested
- See above
- Needs Discussion (9 issues)
- Needs Review (2 issues)
Object Cache
- @spacedmonkey: Committed https://core.trac.wordpress.org/ticket/56721 and need review and commit on https://github.com/WordPress/wordpress-develop/pull/3403
- @spacedmonkey: Also been profiling and testing WP 6.1 beta 2 – profiling data
- @spacedmonkey: WP6.1 beta 2 has a slower page generation time than 6.0, in some cases by a lot (0.6325 vs. 0.2929 seconds), even with fewer DB calls in a lot of cases
- @flixos90: Did you test 1 for each scenario, or multiple and then use average/median results?
- @spacedmonkey: Ran at least three times and did median
- @flixos90: If we could automate, maybe do something like 5-10 runs to make it more accurate
- Also working on dev notes (1, 2, 3) – @shetheliving has reviewed and @flixos90 will take a look today or tomorrow
- @khoipro: Will assign someone from their back-end team to take a look at profiling and testing, as well
Feedback requested
- See above
- Needs Discussion (4 issues)
- Needs Review (1 issue)
Site Health
N/A
- We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or ping in Slack
- @furi3r: Draft Make post is in progress for the new SH checks in 6.1, waiting for a final review before publishing
Feedback requested
- Needs Discussion (8 issues)
Measurement
N/A
- We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or ping in Slack
- @shetheliving: Getting closer to starting engineering on the plugin performance checker thanks to @mehulkaklotar and @jjgrainger‘s work on a design doc
Feedback requested
- Needs Discussion (5 issues)
- Needs Review (1 issue)
JavaScript
- No updates
Feedback requested
- Tree-shaking block styles on the frontend #41020
- Needs Discussion (2 issues)
- Needs Review (3 issues)
Infrastructure
- @flixos90: Per the vote to bump the Performance Lab plugin minimum requirement to WP 6.0, our next release will require 6.0
- @flixos90: Our next release, 1.6.0, will be Monday, October 17, less than two weeks from now. Any feature or enhancement that you want to include in this release should be completed and merged by next Wednesday, October 12 (see #548).
Feedback requested
- See above
- Needs Discussion (6 issues)
- Needs Review (3 issues)
Module proposal: Server-Timing API
- @rickjames: For server-side performance measurement, MySQL’s “slowlog” can be useful
- @flixos90: Not familiar with that tool, but worth exploring another time and feel free to draft a proposal. The current proposal leaves the actual measurement agnostic so it would leave room to introduce a more flexible and opinionated system later.
- @adamsilverstein: Overall love the proposal, are you proposing that this would be included in the response by default once this is added?
- @flixos90: Yes, envision that it would be added by default
- @johnbillion: Added a comment on the issue about headers: headers need to be sent before any output, and a lot of processing that happens in WordPress that would ideally be measured occurs after the output begins
- @flixos90: Definitely a fair point. Even with that limitation, still a lot of benefit to having the header to measure everything until WP begins to render the output. This will be a known limitation eventually, but also think this will become a smaller issue with FSE sites because they typically generate all content and then it is just “printed” out, so less “work” happening after headers are sent.
- @johnbillion: Maybe, but
still gets filled up by plugins and core doing processing. Would be good to think of what metrics would be useful to see and whether exposing those metrics via this API makes sense. - @flixos90: One example would be the autoloaded options query given the recent module proposal to improve that
- @johnbillion: Does FSE actually construct its output before it’s all sent?
- @aristath: Yes, the whole content/template gets rendered internally prior to sending any headers
- @johnbillion: Like the idea of using the Server-Timing API header, but not sure if it necessarily works for WP
- @flixos90: Isn’t it worth pursuing to be able to cover anything that happens prior to page output, which is a lot?
- @johnbillion: It could well be, but would be good to see real world examples of what would be good to measure. Output buffering may not be the worst idea if the API is restricted to the plugin; definitely worth investigating.
- @flixos90 will think about examples
Open floor
- @aristath: Started porting SQLite as a module: https://github.com/WordPress/performance/pull/547; will discuss further next week
- @josklever: https://core.trac.wordpress.org/ticket/55344 is related to the performance of the WP dashboard. Resources are loaded for dashboard widgets that are disabled via Screen Options, which can cause unwanted delays or issues for other widgets if there are conflicts.
Our next chat will be held on Tuesday, October 11, 2022 at 11am EDT in the #core-performance channel in Slack.
#core-js, #core-media, #performance, #performance-chat, #summary, #hosting-community


