Performance Chat Summary: 11 June 2024

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

Announcements

  • Welcome to our new members of #core-performance
  • 3.1.0 launched on June 6 to include new performance 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 assets
  • Early WordPress 6.6 BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 performance results [GitHub issue]
    • Early investigations did NOT show a 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. at all, but instead shows that 6.6 Beta 1 is improved from 6.5.3 (conversation to be continued on the 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/ issue)
  • Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. 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. Europe, Turin, Italy on Thursday June 13

Priority Items

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab plugin (and other performance plugins)
    • Auto-Sizes for Lazy-Loaded Images
    • Embed Optimizer
    • Fetchpriority
    • Image Placeholders
    • Modern Image Formats
    • Optimization Detective
    • Performant Translations
    • Speculative Loading
  • Active priority projects

WordPress Performance Trac Tickets

Performance Lab Plugin (and other Performance Plugins)

  • @mukesh27 PR that ready for review:
    • PR #1298 – Audit Autoloaded Options Site Health should extend CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.’s check if available
  • @joemcgill Also worth noting that Chrome 126 is scheduled to ship today with auto-sizes support turned on, so we should be able to get better testing feedback soon from folks using that feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins..
    • @westonruter opened https://github.com/WordPress/performance/pull/1296 in order to do a quick minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. of Optimization Detective and could use reviews

Active Priority Projects

Improving the calculation of image size attributes

  • @mukesh27 has been working on improved image sizes algorithm
    • PRs merged:
      • PR #1250 – Initial implementation of improved image sizes algorithm
    • PRs ready for review:
      • PR #1290 – improved image sizes for left/right alignment
      • PR #1252 – Use correct sizes for small images

Optimized Autoloaded Options

Improved template loading

  • @thekt12 I have raised a new bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. #61405 (with a POC that currently breaks some tests ). Same pattern was also observed in WP_Theme_JSON_Data::$theme_json, but I am not sure of the performance impact it will have. PR#6781 will address the remainder of #57789 and #59600 ; estimated to give at least 3% improvement.

Open Floor

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

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

Performance Chat Summary: 4 June 2024

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

Announcements

  • Welcome to our new members of #core-performance
  • WordPress 6.6 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is today
  • Performance lab 3.2.0 release scheduled for June 6

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab 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 (and other performance plugins)
    • Auto-Sizes for Lazy-Loaded Images
    • Embed Optimizer
    • Fetchpriority
    • Image Placeholders
    • Modern Image Formats
    • Optimization Detective
    • Performant Translations
    • Speculative Loading
  • Active priority projects

WordPress Performance Trac Tickets

  • WordPress 6.6 enhancement tickets
    • #61276 was just re-opened but the enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. is committed
    • @joemcgill The new Site Health check for large autoloaded options is committed https://core.trac.wordpress.org/changeset/58332. I also committed the caching improvements for generating global styles for blocks in https://core.trac.wordpress.org/changeset/58334
    • @spacedmonkey has several issues he would like reviewing #53167 #59595 and #59871
      • @joemcgill I committed the caching improvements that we’ve been working on and left a review on your PR, @spacedmonkey I think we could still consider making your proposed change, but the impact will be much smaller and should most likely start with a GB PR
    • @spacedmonkey I think that #53167 & #59871 are ready for commit IMO but we missed the cut off there
  • There are 9 performance tickets for 6.6, all of which are marked as bugs
    • @joemcgill The main one that I want a 2nd opinion on is #55996 and specifically this PR, which fixes a bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. that the .org team ran into when trying to apply filters to 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. content at the template level instead of the block level.

Performance Lab Plugin (and other Performance Plugins)

  • @westonruter Milestones for the plugins: https://github.com/WordPress/performance/milestones
  • @westonruter For 3.2.0 we’ll at least have the Upgrade Notice – I think we should discuss more what should be done there, whether we bring back the adminadmin (and super admin) pointer whenever there is a big new feature or if something else less obtrusive is warranted
  • @ashwinparthasarathi hoping to work on this https://github.com/WordPress/performance/issues/1239
    But it will probably make it in the next release.
  • @joemcgill states 1136 the main one that we need to try to get wrapped up
    • @stellastopfer Yes, we should get the last icon and the export today EOD
    • Active discussion on the ticketticket Created for both bug reports and feature development on the bug tracker. regarding the assets and agreed to go with just the “P” for now as we are short on time
  • Agreed to puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) the onboarding experience issue https://github.com/WordPress/performance/issues/1032
  • The last issue is https://github.com/WordPress/performance/issues/715 but it seems it won’t take much to get it over the finish line, with input from @adamsilverstein
  • @westonruter I submitted the Image Prioritizer plugin for review with the plugin review team. This includes the fetchpriority=high for the LCP image, including when there are different LCP image elements for different breakpoints. It also now includes applying correct lazy-loading so that images that appear in the initial viewport in any breakpoint never get lazy-loading whereas images outside the initial viewport in any breakpoint always get lazy-loading.

Active Priority Projects

Improving the calculation of image size attributes

  • @mukesh27 has been working on improved image sizes algorithm
    • PR that ready for review:
      • PR #1250 – Initial implementation of improved image sizes algorithm
      • PR #1252 – Use correct sizes for small images

Web Worker Offloading

Optimized Autoloaded Options

  • @joemcgill now that we’ve included the Site Health check, I think we can update the dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. draft and then close out that project. I’ve been waiting on the doc release leads to get a process setup that we can add our dev note to.

Open Floor

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

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

Performance Chat Summary: 28 May 2024

The full chat log is available beginning here on Slack.

Announcements

  • Welcome to our new members of #core-performance
  • Performance Lab 3.2.0 release date is June 6, 2024
  • WordPress 6.6 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is scheduled for Tuesday June 4

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab 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 (and other performance plugins)
    • Auto-Sizes for Lazy-Loaded Images
    • Embed Optimizer
    • Fetchpriority
    • Image Placeholders
    • Modern Image Formats
    • Optimization Detective
    • Performant Translations
    • Speculative Loading
  • Active priority projects
    • Improve template loading
    • INP research opportunities
    • Improving the calculation of image size attributes
    • Optimized autoloaded options

WordPress Performance Trac Tickets

  • WordPress 6.6 enhancement tickets:
    • @adamsilverstein to test #53167 and aim to get it in beta 1
    • For #57789 @thekt12 added persistent cache to  get_theme_data . Yet to run it with existing unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. and take performance result. He will add a PR today for testing add it today for testing. Currently he is adding some last changes to https://github.com/WordPress/wordpress-develop/pull/6392 which will fix some unit test
    • @thekt12 has updated #59595 with https://github.com/WordPress/wordpress-develop/pull/6392 with the review changes. Suggest changes weren’t working fully as $metadata[‘name’] was not present for all the block_nodes so updated it even further. Also identified repetitive code in old function which is fixed
    • @mukesh27 has #61276 ready for review, it has lots of testing on this one
      • @johnbillion I think we already have a few site health checks that aren’t particularly actionable by an end user, so this shouldn’t be a blockerblocker A bug which is so severe that it blocks a release., but definitely something to consider
      • @joemcgill In the Performance Lab plugin, we include a way for end users to review the specific options that are being flagged and allow them to turn off autoloading for them. Still unsure if that functionality is ready for all end users, but the fact that this site health check can be enhanced with specific additional details is a nice starting point. We can always adjust the copy during betas as well. I think we’ll likely get more feedback once the Dev Notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. for #42441 is published. Pairing the health check with this improvement seems like a nice affordance

Performance Lab Plugin (and other Performance Plugins)

  • @westonruter suggested moving the 3.2.0 performance lab plugin release date to June 6 to accommodate the newest designs for the new icons
  • @stellastopfer provided an update on the new Performance Lab icon set, and advised that option 2 is being voted the best set of icons
  • @westonruter On this note… For the onboarding experience I think timing is great to coincide with WP 6.5.4 to introduce redirection to the Performance screen when activating the plugin
  • Decision agreed to move Performance Lab plugin 3.2.0 release until after the WordPress 6.5.4 release on June 5
  • We have the first Performance Lab repo bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub on Wednesday May 29
  • @westonruter Modern Image formats is close to wrapping a couple of PRs for merge – this ticket in particular by @adamsilverstein
  • @westonruter is etting very close to finishing the Optimization Detective refactor/extraction into Image Prioritizer dependent plugin

Active Priority Projects

  • @stellastopfer We now also have one project board that should cover all current and upcoming work. The board is still a bit of a WIP, but should get its final shape over the course of the next couple of weeks.
    • Hopefully, it will serve our team just as well as some of you lurkers out there, so you can get an idea on features added to upcoming releases, bug fixes and other improvements, but also discuss and contribute where you see an opportunity to do so.
    • The first next step would be to add all of the issues that are in progress, but aren’t there. Then we will triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. and align on labels. I think there are some we can do without and others we can simplify.
    • If you click on the arrow in the tab, and go to Slice by > Milestone, it will open a sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. There you can choose the milestone you want to see card for and they will filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. on the right.
    • Only one milestone at a time. We could create a filter by due date. That would cover multiple
  • @joemcgill suggested we’ll probably need some follow-up or some documentation on how we want to use the board (best practices, tips, that sort of thing), but this is an amazing start and should help us organize visibility of our work much better.

Improving the calculation of image size attributes

  • @mukesh27 has been working on improved image sizes algorithm. And asked @joemcgill to please review it when you have moment.
    • PR that ready for review:
      • PR #1250 – Initial implementation of improved image sizes algorithm
      • PR #1252 – Use correct sizes for small images

Open Floor

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

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

Performance Chat Summary: 7 May 2024

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

Announcements

  • Welcome to our new members of #core-performance
  • Performance lab 3.1.0 release scheduled for May 20

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab 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 (and other performance plugins)
  • Active priority projects
    • Improve template loading
    • INP research opportunities
    • Improving the calculation of image size attributes
    • Optimized autoloaded options

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • @adamsilverstein only 14 tickets milestoned for 6.6 in the performance focus,  the bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrubs have been effective at keeping tickets moving
    • @spacedmonkey I would consider adding my ticketticket Created for both bug reports and feature development on the bug tracker. for loading multiple networknetwork (versus site, blog) options at once. I am hoping to get #61053 into this release.
      • @pbearne That would a good add, and we can it to the Dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase.
    • @westonruter Happy to share that post embeds will now get lazy-loaded in 6.6 where previously they were excluded. This was committed yesterday https://core.trac.wordpress.org/changeset/58143

Performance Lab Plugin (and other Performance Plugins)

  • Performance lab plugin and the following performance plugins:
    • Auto-sizes for Lazy-loaded Images
    • Embed Optimizer
    • Fetchpriority
    • Image Placeholders
    • Modern Image Formats
    • Optimization Detective (Developer Preview)
    • Performant Translations
    • Speculative Loading

  • Modern images: @adamsilverstein for modern images work has continued on adding AVIF support, that is very close to ready – https://github.com/WordPress/performance/pull/1176
  • @ashwinparthasarathi Worked on a couple of features and PRs are underway,
  • @benoitfouc AVIF is now mainly supported, i’m agree with this proposition
    • @adamsilverstein supported in all browsers, however only ~30% of WordPress sites have the server support they need to upload AVIFs (and generate srcset images)
    • @benoitfouc is there a way to control this support on the plugin? Using WebP by default when the server do not support AVIF
    • @westonruter Yes, that’s how it works. And there is a user option to decide which format when AVIF is available
  • @adamsilverstein that would be my preference. then, what happens if users are already outputting WebP, does that change automatically to AVIF when they upgrade the plugin, or do they need to go in and change the output setting?
    • One thing we are trying to decide on that PR is haw to handle the default settings – especially for users who upgrade from the current version
  • @westonruter Would anyone be explicitly wanting WebP instead of AVIF, I guess the question is. Adam suggested doing a major version bump from 1.x to 2 as a signal for this significant change. Might be sufficient as a way to alert users that their attention may be needed. Otherwise, I guess an adminadmin (and super admin) pointer could be added, but that seems noisy. Maybe add an Upgrade Notice in the readme as well?
    • Agreement reached:
    • Going back up to @ashwinparthasarathi PR https://github.com/WordPress/performance/pull/1208 to improve visibility of the features’ Settings screens, take a look at the last comment on the PR. How about adding a link to the settings in the activation notice? “Feature activated. Review settings.”
    • Where settings is a link to the relevant settings screen. A settings link also appears with each feature once activated, but the thinking is that the user may not notice this appear all of a sudden
  • @ashwinparthasarathi yes, it makes sense, and I will make the changes to include it in the Activation notice. I also thought that your earlier idea to make those settings links more visible is a good one. I think if we could make it stand out, it’ll work.
  • @westonruter for Speculative Loading: Whether we should go ahead and prevent speculative loading for logged-in users (and when PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher sessions are being used): https://github.com/WordPress/performance/pull/1178
    • After thinking about it some more, I wonder if it may be premature to add this as we haven’t had any reports in the wild of this being a problem. The one user who reported it did so as part of an overall set of suggestions.
    • Perhaps we sit on this awhile longer to bake
    • There could also be a new setting we could add for turning off speculative loading for logged-in users. But ideally we’d be able to make a decision and not add to the user’s set of tasks. Although there are currently pretty low-level settings for prefetch vs prerender already, so maybe this isn’t a big deal for a feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. as we figure out what makes sense for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..
    • Oh, I stand corrected, one user did report wanting to be able to disable speculative loading this in the support forumSupport Forum WordPress Support Forums is a place to go for help and conversations around using WordPress. Also the place to go to report issues that are caused by errors with the WordPress code and implementations.https://wordpress.org/support/topic/sl-lsc/#post-17699897

Active Priority Projects

Improve template loading

  • @thekt12 Last week I worked on feedback from #59595 and also worked on it’s unittest, just a few more checks and I should be able to give it for review today. I’ll resume back #57789

INP research opportunities

Improving the calculation of image size attributes

Optimized autoloaded options

  • No updates this week

Open Floor

  • @benoitfouc i want to know if somebody are interesting about working on this PR : https://github.com/WordPress/performance/issues/371 This PR make sens, and is on the same way that the new version of Modern Images Formats plugin
  • @clarkeemily I think last week one suggestion was made to have a bug scrub specifically for the Performance Lab plugin – wondered if folks were in favor of this in principle, then we can perhaps work to define the scheduling etc later

Our next chat will be held on Tuesday, May 21, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

Performance Chat Summary: 7 May 2024

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

Announcements

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab 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 (and other performance plugins)
  • Active priority projects
    • Improve template loading
    • INP research opportunities
    • Improving the calculation of image size attributes
    • Optimized autoloaded options

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • No updates today, watch out for the bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub happening tomorrow

Performance Lab Plugin (and other Performance Plugins)

  • @westonruter I think we’re just about done with the PHPStan level upgrades, going from 0 to 6: https://github.com/WordPress/performance/issues/775 
    • The team continued to discuss the number of levels and also #59653
    • @westonruter It would be great for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. to adopt it with a populated baseline so that all existing issues are ignored but new issues are reported as they arise
    • @joemcgill The PHPStan work will likely cause bumps to all of our plugins, not just the ones with issues in milestones. Are those going to be reflected in changelogs?
    • @westonruter Yeah, we need to bump the versions. Maybe a general changelog entry for improving code quality?
    • @joemcgill That makes sense, we can even add the overarching ticketticket Created for both bug reports and feature development on the bug tracker. to all the project milestones perhaps?
    • @johnbillion RE PHPStan, core ticket #52217 is about fixing issues it identified, but I would be in favour of a follow-up proposing implementing PHPStan at some level.
    • @westonruter will file a ticket
  • @clarkeemily reminder that the next Performance Lab release is May 20 see https://github.com/WordPress/performance/milestones

Active Priority Projects

Improve template loading

  • @joemcgill three issues remaining in this project, #59595, #59600, and #57789
    • #61112 is related to the above, and looks ready for commit to both GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ and Core. I don’t have commit access to GB but can handle the Core merge
  • @joemcgill All this need to make the same change in both repos seems inefficient to me, and is part of the larger conversation about improving the syncing process from GB > WP-dev repos. I’ve started this thread specifically about improving the way the theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. stuff is managed
    • @joemcgill I think we can handle the isGlobalStylesUserThemeJSON change in a follow-up pending discussion in the GB repo
    • @thekt12 Yes. But do we need to fix inconstancy in core PR now or we should do it after the next GB pr?
    • @joemcgill No, that needs to be fixed when the change in the GB repo is synced to Core. That’s why the inconsistency exists, and highlights the problem with maintaining redundant classes in both repos.
  • @thekt12 working on improvements to #59595

INP research opportunities

  • GitHub tracking issue
  • @adamsilverstein I’ve been working a little on adding instrumentation to the Interactivity 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. in a draft PR

Improving the calculation of image size attributes

  • @joemcgill No changes since last week, but are planning to start development on #GH1187 soon

Optimized autoloaded options

  • @joemcgill Yesterday, I committed r58105, which is a follow-up on our previous autoload options changes
    • As a side effect, it revealed that there are some issues with the way we are collecting performance metrics in the codevitals dashboard that I plan to follow up on later today
    • Also @pbearne and I have been collaborating on a dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. for r57920, which is close to being ready for review.

Open Floor

  • @mukesh27 Is there any plan to merge https://github.com/WordPress/performance/tree/trunk/includes/site-health/audit-autoloaded-options in core?
    • @spacedmonkey The blockerblocker A bug which is so severe that it blocks a release. for the above was at the lack of action to.
    • it is all well and good highlighting that there are 20 options that are very large, but with no way to fix it, a user it out of luck. I had planned to have a way of changing options to be from being autoloaded or not. Think checkbox and rest apiREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. to update the row in the database. I haven’t had anytime to look at now I am not sponsored.

Our next chat will be held on Tuesday, May 14, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

Performance Chat Summary: 30 April 2024

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

Announcements

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab 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 (and other performance plugins)
  • Active priority projects
    • Improve template loading
    • INP research opportunities
    • Improving the calculation of image size attributes
    • Optimized autoloaded options

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • @joemcgill For our auto-loading improvents, #42441, I owe @pbearne feedback on a draft of the dev-note (planning to do so this week). I also left some feedback on the follow-up issue (#61045) that needs to be addressed, and then I think that is ready for commit.
      • @pbearne I need feedback on this as I went through coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and set the autoload for all update_options. If i felt they were adminadmin (and super admin) only options i set them to off
      • @joemcgill I think that’s a useful idea, but we should probably handle that in a separate issue/PR
      • @pbearne in an attempt to reduce options load on the front-end
    • @spacedmonkey I want to try and get https://github.com/WordPress/wordpress-develop/pull/6393 committed in the next couple of days. Just waiting on final feedback from @peterwilsoncc
    • @spacedmonkey also working on https://github.com/WordPress/wordpress-develop/pull/6311. It needs tests.
      • The wp_prime_network_options  function is an example of where it might not have a direct benefit out of the box. It is a developer api and would enable plugins to “do the right thing” I prime multiple networknetwork (versus site, blog) options caches at once.
    • @thekt12 I have started a new PR 6463 for caching #57789 (not ready for review). I was trying to see if we could cache before filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. to avoid unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. failures but seems that doing so only give 0.01% improvement.
      • At the moment I am trying to cache inside WP_Theme_JSON_Data::__construct and WP_Theme_JSON::__construct as they are the one with major 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.

Performance Lab Plugin (and other Performance Plugins)

  • @westonruterPR is ready for review which allows performance features to have plugin dependencies. This is needed for Image Prioritizer which depends on Optimization Detective. With this PR merged, the work on Image Prioritizer can press forward full steam.
  • @mukesh27 I worked on Progress indicator is missing when activating a feature and it has been merged! Requires a follow up though from this comment
  • @joemcgill For the 3.1.0 milestone, we have one issue that needs an owner to move forward: https://github.com/WordPress/performance/issues/1032. @westonruter were you planning to pick that up from Felix, or do we need someone else to help move this forward?
  • @westonruter Both Speculative Loading (PR merged) and Optimization Detective (PR pending merge, review please) will be able to be embedded in other plugins or themes to increase adoption. This is more relevant to Optimization Detective since it is lower-level plumbing which optimization plugins can leverage, and Speculative Loading is getting popular.
    • Also for Speculative Loading, there’s a PR open to add a filter for whether speculation rules are printed and default to not printing when the user is logged-in non-admin or PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher session is active. Could use additional eyes to confirm the approach. Should there be a checkbox for whether to enable for logged-in users? Also, perhaps Speculative Loading should add a Site Health check for when PHP sessions are being used on the frontend so a user can be aware why it doesn’t seem to be doing anything?

Active Priority Projects

Improve template loading

  • @joemcgill There are really only three issues remaining in this project, #59595, #59600, and #57789 (which we already discussed and is probably the most important next step).

INP research opportunities

Improving the calculation of image size attributes

  • @joemcgill I spent some time updating the overview issue for Improving Images sizes, and began filling in some details. This project covers two main efforts to improve the way WP calculates sizes:
    • Improving the default sizes algorithm (accounting for layout)
    • Implement the auto-sizes HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. spec (already handed by the auto-sizes plugin)
  • Rather than creating a whole separate performance feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. for developing the improvements to the default sizes algorithm, I think it makes sense to combine all of this into the original auto-sizes plugin.
  • In addition, I created an issue to track the work needed to measure and track the impact of these changes, in which I link to the latest data we were able to query from HTTPArchive as a baseline.
  • @joemcgill has assigned one issue to @mukesh27

Optimized autoloaded options

  • Updates covered in WordPress 6.6 item above

Open Floor

  • @mukesh27 Is there any plan to merge https://github.com/WordPress/performance/tree/trunk/includes/site-health/audit-autoloaded-options in core?
    • @spacedmonkey The blockerblocker A bug which is so severe that it blocks a release. for the above was at the lack of action to.
    • it is all well and good highlighting that there are 20 options that are very large, but with no way to fix it, a user it out of luck. I had planned to have a way of changing options to be from being autoloaded or not. Think checkbox and rest apiREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. to update the row in the database. I haven’t had anytime to look at now I am not sponsored.

Our next chat will be held on Tuesday, May 7, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

WordPress 6.5 performance improvements

This post is the latest in a series of updates focused on the performance improvements of major releases (see 6.4, 6.3, and 6.2).

WordPress 6.5, “Regina” is the first major version of WordPress released in 2024. This release includes several important performance enhancements impacting the user experience for site visitors, along with remarkable improvements to editor performance. Importantly, WordPress 6.5 delivers site performance that is similar, if not superior to previous versions, despite the addition of many significant new features.

In our analysis of the Twenty Twenty-four theme, we observed modest changes in website front-end performance. The median LCP time shows a slight 0.81% decline in non-translated tests, with a 0.95% improvement in translated tests. Similarly, the Twenty Twenty-one theme exhibits a 1.13% drop in median LCP times in non-translated tests, yet showcases a notable 4.50% improvement in translated tests. Further details on the methodology behind these measurements are provided later in this article.

Key improvements

Improved performance for translated sites

This version of WordPress includes a new localization system that loads translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. files more quickly, and introduces support for providing translation files as native PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher files. As the merge announcement summarizes, these enhancements are expected to bring a 23.5% improvement in loading time and 41.4% reduction in memory consumption for translations.

A significantly faster editing experience

A major focus of this release was improving performance while editing your site. WordPress 6.5 delivers 5x faster typing processing, 2x faster editor loading, and a 60% reduction in pattern loading, based on measurements collected as part of the overall effort documented in this GitHub issue.

Improvements for registering 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. variations

The WordPress block editing system allows blocks to be registered with a set of block variations, which makes it easy to define different versions of a block without needing to duplicate the whole block. This version of WordPress adds support for registering block variations only when used, avoiding costly processing when this data is unnecessary, which makes server rendering 5% faster.

Support for AVIF image format

WordPress 6.5 supports AVIF, a modern image format that offers significant improvements in image quality and compression over previous formats like JPEG, PNG, and even WebP.  AVIF images can be up to 50% smaller than JPEGs while maintaining the same image quality.

Additional performance focused changes

In total, there were 20 performance related improvements included in this release, split evenly between new enhancements (10) and bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes (10).

How release performance is measured

The performance measurements used for the overview are based on benchmarks1 conducted using an automated workflow 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/ action runners. Benchmarks were taken of the homepage of the Twenty Twenty-one, Twenty Twenty-three, and Twenty Twenty-four themes with and without translations installed, comparing WordPress 6.5 with WordPress 6.4.3 (the latest version of WP 6.4 available when 6.5 was released).

Performance metrics were collected from 100 runs for both CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Web Vitals (CWV) and Server-Timing headers provided by the Performance Lab 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 using CLI scripts from the WPP Research repo.

Benchmark Data

No translation (en_EN):

Translation (it_IT):

Follow up from this release

Each release, the Performance Team looks for opportunities to improve the performance of WordPress for the following releases, which includes identifying ways we can improve the tooling and processes we use to support the performance practice. For example, we’re collecting opportunities to improve our performance testing in this GitHub issue

You can also follow progress on other performance-related work being planned for the WordPress 6.6 release in Trac and in the Gutenberg repository. A full list of the Performance Team’s priorities for the year is available on the 2024 Roadmap page in the team’s handbook. Come join us in making WordPress as performant as possible.

Props to @flixos90, @peterwilson, @adamsilverstein, @annezazu, and @jorbin for contributing to this post.

  1.  Benchmark measurements use lab data to gather performance metrics under controlled conditions and may not reflect the way the software performs in the field. For more on the differences between Lab and Field data, see this article. ↩︎

#6-5, #core, #core-performance, #performance

Performance Chat Summary: 23 April 2024

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

Announcements

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab 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 (and other performance plugins)
  • Active priority projects
    • Improve template loading
    • INP research opportunities
    • Improving the calculation of image size attributes
    • Optimized autoloaded options

WordPress Performance Trac Tickets

Performance Lab Plugin (and other Performance Plugins)

  • @westonruter the Speculative Loading plugin is already at 9000+ active installs! I expect it to tip into the 10k+ range today as the counts have been increasing about 1k per day
    • @joemcgill One of the important things for us to understand with Speculative Loading is what the impacts are on the sites that are using it, that includes performance impact, obviously, but also how it effects things like server resource usage, integration with analytics or other things that may not expect some requests to come from non-users.
    • @westonruter Yes, the readme has been updated to note that. However, people don’t always read the readmes
  • @westonruter planning to kick off the Image Prioritizer plugin this week which will split out the image-specific logic from Optimization Detective, leaving that plugin as an 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. dependency. We can then feature Image Prioritizer in the PL plugin to promote to users.

Active Priority Projects

Improve template loading

  • @joemcgill For the ongoing template loading epic we’ve been working on (https://github.com/WordPress/performance/issues/746) there are 3 main tickets we’re tracking for 6.6:
  • @joemcgill On #59600, I just committed r58025, which covers 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. theme patterns on Friday. As @thekt12 has looked into improvements for block templates and template parts, it seems that most of the cost is related to the underlying Theme JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. processing, which is covered by #57789
    • @joemcgill did some cleanup, and added some updates to #57789 on that ticketticket Created for both bug reports and feature development on the bug tracker. yesterday
  • @spacedmonkey Is anyone looking into #59596
    • Call file size on every css file results in multiple file operations. Might be a good one to pickup, there is already a PR, should be simple to get across the line.
  • @thekt12 most of this is repeat to what @joemcgill said above-
    • #59600 Performance 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. in block tempalte part was related to get_theme_data ( this will be handled in #57789 )
    • #59595 Current implementation (PR#6392) was found to have benefit but need to resolve circular dependency – a bit complex scenerio (this)
    • #57789 So far we have observed benefits of caching WP_Theme_JSON_Resolver::get_theme_data – I am checking any side effects if we do so.
    • We will be caching WP_Theme_JSON_Resolver::get_core_data data inside WP_Theme_JSON_Resolver::get_merged_data , we believe it will result in 3-4% improvement alone and is not subjected to much change.

INP research opportunities

Improving the calculation of image size attributes

  • @joemcgill noted that he worked with @adamsilverstein and started looking into creating a Colab to capture and compare metrics for this, which is what I’m planning to focus on this week

Optimized autoloaded options

  • @joemcgill I created a follow-up ticket last week to update the default auto load option values that get set by coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. to use the new schema we introduced in #42441@pbearne also started a draft of the dev-note for that change, which I owe a review on.

Open Floor

Our next chat will be held on Tuesday, April 30, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

Performance Chat Summary: 16 April 2024

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

Announcements

  • Welcome to our new members of #core-performance
  • The team launched the Performance Lab 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 version 3.0.0 on Mon April 15

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab plugin (and other performance plugins)
    • Final decision regarding streamlining PL plugin and other standalone plugins #1061
  • Active priority projects
    • Improve template loading
    • INP research opportunities
    • Improving the calculation of image size attributes
    • Optimized autoloaded options

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • Nothing to discuss this week

Performance Lab Plugin (and other Performance Plugins)

  • Final decision regarding streamlining PL plugin and other standalone plugins #1061
    • @thelovekesh added a workflow diagram on the issue itself and had some initial conversation with @swissspidy as well.
    • In the new workflow, we will be aiming to automate the other chores like:
      • auto creation of a release branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".
      • raise a PR on the trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. from the release branch which will be having updated since tags and bumped version.
      • renaming of milestone and creating a next milestone.
  • @mukesh27 has the following PR ready for review PR #1148 – Warning notice about read-only file system remove even when all plugins are installed
  • @westonruter For Speculative Loading, I learned about an issue yesterday where WooCommerce links to add-to-cart and remove-from-cart are erroneously being prefetched/prerendered. WooCommerce shouldn’t be using links for these UIUI User interface elements, but such is WP.

Active Priority Projects

Improve template loading

  • @thekt12 ticketticket Created for both bug reports and feature development on the bug tracker. #59595PR#6392 is good for some initial review and feedback. Findings and reasoning behind each changes is added to PR description and inline comments. In TT4 homepage, I can see 4% improvement for non persistent cache and 6% improvement for site with persistent cache.
  • @thekt12 In #59600,
    • Working on improving performance for 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. Template  PR#6369 ( current results not that good )
    • Template Parts caching PR#6391 ( current results not that good )

INP research opportunities

  • @adamsilverstein created this top level issue to track the work: https://github.com/WordPress/performance/issues/1120
    • opened a few coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. tickets about adopting the Interactivity 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. to replace jQuery (#60986 #60985 and #60987) These are open for contributions if anyone wants to get a chance to try the Interactivity API out.
    • created a sheet with the list of scripts identified in the audits and have started to inventory which themes/plugins have public 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/ repositories we can contribute to.
    • created a PR to add custom metrics to httparchive so we can track adoption of the Interactivity API and I also started exploring adding performance instrumentation to the Interactivity API, so we can debug performance issues with callbacks.

Improving the calculation of image size attributes

  • @joemcgill I have an update on https://github.com/WordPress/performance/issues/760
    • One of the first steps to this project is to get a baseline of what the impact of inaccurate sizes attributes have on the web. I’ve updated an earlier HTTPArchive query that was created a few years ago to get some of that info, and am planning to work with @adamsilverstein on some additional ways to measure the impact of any changes we make.
    • I’ll plan on creating a bit of a roadmap for how we can improve the sizes attribute via a Performance Lab project once we’re happy with how to measure this.

Optimized autoloaded options

  • @swissspidy we have this long-standing module proposal for optimizing autoloaded options however @joostdevalk just published something very similar. So I was thinking that maybe we should collaborate
    • @joostdevalk I’ve done (in what’s probably a pretty rough way) something similar to what @swissspidy proposed in his ticket too; measure which options are used, remove autoload from those that aren’t used
    • I was kinda shocked by the results on some sites, going from multiple megabytes of options to 2-300 KB
    • I do still think though that maybe we should look at more aspects. We currently only have autoload yes and no, and I’ve basically always thought it’s weird that we don’t use the fact that it’s a string to also allow other contexts, like admin
    • Anyway, my code is there, happy to look at it together with someone and build something for performance labs
    • @joostdevalk One other thing related to options; the impact of a “miss” on an option that’s supposed to be autoloaded is actually way higher, as that always results in a DB query. If we could get a way to prevent that from happening, by having a get_autoloaded_option or something like that, I think the impact could be quite big.
  • @joemcgill For 6.6, we just added some functionality in #42441 that could be useful for automating some of this. After that change, any new option that is added can have its autoload value determined based on some additional criteria. For example, in that issue disables autoloading for large options if they weren’t explicitly added while passing true to the autoload param.
  • @pbearne asked @joostdevalk have you looked #347 code

Open Floor

Our next chat will be held on Tuesday, April 23, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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

Performance Chat Summary: 9 April 2024

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

Announcements

  • Welcome to our new members of #core-performance
  • Plan to launch Performance Lab 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 version 3.0.0 on Mon April 15

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • Performance Lab plugin (and other performance plugins)
    • Open discussion regarding streamlining PL plugin and other standalone plugins #1061
  • Active priority projects
    • INP research opportunities
    • Improve template loading

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • @adamsilverstein volunteered to be the performance release leadRelease Lead The community member ultimately responsible for the Release. for 6.6

Performance Lab Plugin (and other Performance Plugins)

  • Open discussion regarding streamlining PL plugin and other standalone plugins #1061
    • @flixos90 at a high level I like what @swissspidy proposed in https://github.com/WordPress/performance/issues/1061#issuecomment-2044774194
      • It would be great if we could have distinct releases per plugin, and automate it completely. Even before we had standalone plugins, the Performance Lab release process involves quite a bit of manual work, like bumping versions and adding changelog in PRs. It takes just a very short time, so not a big overhead, but still prone to human error
    • @joemcgill I definitely like the idea of making the release on GH the result of a release rather than the cause of a release. Seems like we need to better define all of the requirements that an updated process should meet prior to diving into implementation. Is there someone consolidating those requirements?
      • @thelovekesh has volunteered to pick this up, aiming for next Monday to collect everyone’s feedback and to generate a proposed approach
  • @mukesh27 has been working on below some follow-up PRs.
    • PRs that have been merged:
      • PR #1116 – Delete option when uninstalling the Modern Image Formats plugin
      • PR #1117 – Update 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/ actions dependency
  • @flixos90 opened https://github.com/WordPress/performance/issues/1118 which is about enhancing the npm run since script to support standalone plugins. This unlocks a simple yet valuable improvement to our current publishing workflow for standalone plugins. That said, this is separate from the main discussion we should have here as it doesn’t holistically change anything. I just wanted to mention it for reference

Active Priority Projects

Improve template loading

INP research opportunities

  • @adamsilverstein still working through the results, some discussion has continued in comments on the doc. I also saw @swissspidy opened this ticketticket Created for both bug reports and feature development on the bug tracker. which is related to one of the findings #60962 (thanks!)
    • One other small update, part of the INP doc suggests a move towards Interactivity 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. adoption could be helpful, in that regard I have added custom metrics to httparchive so we can track API adoption: https://github.com/HTTPArchive/custom-metrics/pull/113
  • @westonruter For sites still using MediaElement.js, I’ve identified some code that appears to be needlessly spending ~50 ms (when profiling at 6x CPU slowdown on my machine) to check if the pointer-events style is supported. Since this is now supported by >98% of browsers, I think this entire 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. of logic should be replaced with just a simple export const SUPPORT_POINTER_EVENTS = true given this.
    • Granted, this would be more of a LCP fix than an INP fix since it happens early when the page is loading.

Open Floor

  • @thelovekesh This PR is waiting for review – https://github.com/WordPress/performance/pull/981. Can someone please take a look. Thanks.
  • @spacedmonkey I am going to look into adding new functions for loading multiple networknetwork (versus site, blog) option at once. These plan to mirror the new options for site options. Everyone happy to add this to performance focus?
    • I also want to look into a ticket I created regarding changing how query caches are invalidated
    • At the moment, we use last change as a salt for cache keys. This results in validation but it also means for high traffic sites that generate lots of content, lots of keys being generated. So much so that people are turning the query caches off.
    • I want to find a way to reuse the same query cache keys even after invalidation. Instead of make a new cache and hoping a the existing one falls out of cache, reuse the same key and sort the last modified time as part of the object.

Our next chat will be held on Tuesday, April 16, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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