Performance Chat Summary: 20 August 2024

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

Announcements

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
  • 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

WordPress Performance Trac Tickets

  • There are currently 23 performance issues in 6.7
  • @westonruter for #61734 I’d appreciate a second pair of eyes to validate or invalidate my findings for adding fetchpriority=low 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. module scripts. In theory this should improve performance and I swear I saw it did at first, but then I didn’t see improvement but 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.. Please help with my sanity
  • @westonruter the auto-sizes ticketticket Created for both bug reports and feature development on the bug tracker. #61847 is still assigned to Future Release – this should be tagged with 6.7 – this has now been completed

Performance Lab Plugin (and other Performance Plugins)

Active Priority Projects

Improving the calculation of image size attributes

  • @mukesh27 I have been working on the definition for follow-up work to improve the image sizes algorithm. will share more update in upcoming weeks.
    • Develop a system to incorporate layout constraints from ancestor blocks (e.g., group, row, columns, etc) into the sizes calculation.

Plugin Check

Open Floor

  • @adamsilverstein I have been working on measuring the impact of the features we have been developing by querying public datasets to measure CWV metrics for sites that installed each of our plugins. In my colab, I take each feature (identified by the generator tags we add) and find a set of sites that have enabled that feature. I compare their CWV pass rates to a date before they added the feature, then subtract out the CWV changes from a set of sites that _didn’t_ install the feature.
  • @annezazu Another topic/nudge for open floor: Starting the 6.7 roadmap post and wanted to pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” to see what might be on ya’ll’s radar. Can you share there with me?  I see the above Current release (6.7) focus for now.
  • @flixos90 just sharing a brief not really performance-related but potentially interesting query result I implemented yesterday: https://github.com/GoogleChromeLabs/wpp-research/pull/150
    This shows that almost 80% of WordPress sites use a “static front pageStatic Front Page A WordPress website can have a dynamic blog-like front page, or a “static front page” which is used to show customized content. Typically this is the first page you see when you visit a site url, like wordpress.org for example.” rather than displaying their “latest posts” on the home page. I believe that’s what most of us would expect in this age, but it begs the question why “latest posts” is still the default for new sites, when it’s only a good default for 20% of sites.

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

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

Performance Chat Agenda: 20 August 2024

Here is the agenda for this week’s performance team meeting scheduled for August 20, 2024 at 15:00 UTC.

  • Announcements
  • 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
      • Future release
    • 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) including:
      • Enhanced Responsive Images
      • Embed Optimizer
      • Image Prioritizer
      • Image Placeholders
      • Modern Image Formats
      • Optimization Detective
      • Performant Translations
      • Speculative Loading
    • Active priority projects
  • Open floor
    • Update on collecting impact metrics

If you have any topics you’d like to add to this agenda, please add them in the comments below.


This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

#agenda, #meeting, #performance, #performance-chat

Performance Chat Summary: 13 August 2024

The full chat log is available beginning here on Slack.

Upcoming Release

The next release for Performance Lab and related performance plugins is scheduled for Monday, August 19 at 1:00 PM EDT

@westonruter shared a pulse check on Monday noting that the milestones are on average 55% complete. During the meeting he mentioned that the Modern Image Formats issues still needs to most eyes.

@flixos90: “It seems there have been quite a few bugs piling up from the picture element support, but I haven’t been able to look closely yet. Is there an overarching theme that these fall into? E.g. ecosystem compatibility, or edge-cases, or compatibility with other image features of 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?”

@adamsilverstein: “…the picture element support missed a few things we could have caught before launching. we also did already fix a few compatibility issues that would have been hard to catch”

This led to a longer conversation about the goal of experimenting with picture support from a performance point of view.

@flixos90: “My concern with this is mostly about how much of a priority it should be compared to everything else we have on our plate as a team. Of course there’s value in exploring picture element in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., but for instance if it doesn’t help much with AVIF, I question that we prioritize it this much. It’s by no means a simple feature to implement and land, and the bugs require a lot of attention that is taken away from the other things we’re working on (e.g. better responsive image sizes handling) which IMO have a greater performance benefit”

Active Priority Projects

Open Floor

@clorith raised the following:

“I’m thinking about making a new core ticketticket Created for both bug reports and feature development on the bug tracker. to introduce a Sustainabiliuty classification to the Site Health checks, as some of the performance ones, when there’s no real performance problem as is, but the recommendations would be good for sustainability., Just wanted to voice it with y’all first before I started throginw out ideas to change your classifications”

@flixos90: “Definitely some overlap between the two, but I like the idea. Sustainability is a different motivator than performance and some checks may apply more to one than the other. Either way, it’s a good way to promote certain checks and of course sustainability”

Next step is that @clorith plans to open a ticket with recommendations for which checks to possibly reclassify to get input. 

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

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

Performance Chat Summary: 6 August 2024

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

Announcements

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 (6.7)
    • Future releases
  • 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

WordPress Performance Trac Tickets

Performance Lab Plugin (and other Performance Plugins)

  • @mukesh27 has been working on the following
    • Modern Image Formats plugin:
    • PR #1408 – Picture element: Correct the fallback image – Ready for review
    • PR #1437 – Picture element: Full size image is missing in PICTURE > SOURCE srcset (Blocked by above PR 1408)
    • Issue #1439 – Picture element: Small image size issues – Open for discussion
  • @thelovekesh PR for web worker offloading plugin is merged – https://github.com/WordPress/performance/pull/1247
    • @westonruter this has not yet been added to wp.org as ideally it would first have some built-in feature to offload a frontend script to the worker. Like offloading gtag. The challenge is that there is no consistent way that other plugins add gtag to the page. However, the output buffer and/or tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) visitor infrastructure provided Optimization Detective could be used to rewrite external gtag scripts to use Partytown. This would be another nice cross-plugin integration in Performance Lab, as is also seen in Embed Optimizer and Enhanced Responsive Images.
    • @joemcgill Is there a simple example use case that could be used to demo 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. that developers would need to use to offload their own scripts using this plugin? Maybe a coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. 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. that adds some non-critical JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.?
    • @westonruter Yes, it is in the readme, or at least in the PR description. The readme’s instructions should be fleshed out with the same content as the PR description
    • @adamsilverstein We could also document how to leverage with some of the top plugins eg analytics plugins
    • @westonruter Yeah. We could look at how the most popular plugins are adding gtag to the page (e.g. Site Kit), and specifically target them.
  • @westonruter There are quite a few bugs for Modern Image Formats, some of which are listed above, so let’s investigate that
    • Otherwise, Modern Image Formats seems like it needs the most attention as of now, given it seems to have the most bugs and support topics.

Active Priority Projects

Improving the calculation of image size attributes

  • @joemcgill advised that he and @mukesh27 have discussed creating a ticketticket Created for both bug reports and feature development on the bug tracker. to propose adding auto-sizes to core

Plugin Check

Open Floor

  • There were 2 tickets we wanted to discuss today
    • #42743
      • @pbearne I have been trying to find a good way to Disable wp_options autoload for inactive widgets. Any suggestions are welcome
      • We can turn it off if wp_use_widgets_block_editor() returns false
        but with the widgets_block_editor code, the inactive widgets are kept with the active
    • #60414
      • @joemcgill This came up during Dev Chat last week as well. For this to move forward it really needs at least one committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. (likely several) to shepherd it into 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., which includes helping build consensus about any open questions that still need to be resolved.
      • From a Performance Team point of view, we’ve not prioritized it on our roadmap because the performance benefit is theoretical at this point. If someone could show the likely performance benefit of these changes, then it would be worth putting more effort into. As an aside, I do really think WP should implement this personally, but don’t have time myself to take this on.
  • @joemcgill If we have time, I wanted to ask if we want to have a Performance Team specific table at WCUS this year? I assume yes, but wanted to confirm before letting the organizing team know.
  • @joemcgill will be leading this meeting next week

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

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

Performance Chat Agenda: 6 August 2024

Here is the agenda for this week’s performance team meeting scheduled for August 6, 2024 at 15:00 UTC.

  • Announcements
  • 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
      • Future release
    • 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) including:
      • Enhanced Responsive Images
      • Embed Optimizer
      • Image Prioritizer
      • Image Placeholders
      • Modern Image Formats
      • Optimization Detective
      • Performant Translations
      • Speculative Loading
    • Active priority projects
  • Open floor

If you have any topics you’d like to add to this agenda, please add them in the comments below.


This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

#agenda, #meeting, #performance, #performance-chat

Performance Chat Summary: 30 July 2024

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

Announcements

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 (6.7)
    • Future releases
  • 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

WordPress Performance Trac Tickets

Performance Lab Plugin (and other Performance Plugins)

Active Priority Projects

Improving the calculation of image size attributes

  • @mukesh27 For Improving the calculation of image size attributes i have been working on:
    • PR #1382 – Update wp_calculate_image_sizes to Reflect Changes in sizes attribute
    • Issue #1389 – Accurate sizes improvement didn’t account for the disable 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. for sizes – Merged

Plugin Check

Open Floor

  • @adamsilverstein I have one update: my PR adding User Timing metrics for 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. was approved and merged: https://github.com/WordPress/gutenberg/pull/60522 this is hidden behind a debug flag until the API is stable and also only available in the plugin for now

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

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

Performance Chat Agenda: 30 July 2024

Here is the agenda for this week’s performance team meeting scheduled for July 30, 2024 at 15:00 UTC.

  • Announcements
  • 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
      • Future release
    • 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) including:
      • Enhanced Responsive Images
      • Embed Optimizer
      • Image Prioritizer
      • Image Placeholders
      • Modern Image Formats
      • Optimization Detective
      • Performant Translations
      • Speculative Loading
    • Active priority projects
  • Open floor

If you have any topics you’d like to add to this agenda, please add them in the comments below.


This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

#agenda, #meeting, #performance, #performance-chat

WordPress 6.6 Performance Improvements

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

On July 16, 2024, WordPress 6.6 “Dorsey” was released to the public and includes some significant performance improvements. Continuing with work from previous releases, this release delivers significant performance improvements to the editor. Template loading improved by a notable 35+% with this tracking issue capturing all 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. editor improvements. For the second release in a row, significant new features were added for users to customize their sites, while ensuring minimal impact on server response times.

This post summarizes the performance change since the last release in the 6.5 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". (6.5.5) and the 6.6 release, and then digs into the details of the most significant performance related changes.

Analysis shows that block themes (Twenty Twenty-Four was tested), experienced modest regressions in performance. The median Largest Contentful Pain (LCP) time shows a slight 7ms or 5% decline in tests, and the median Time To First Byte (TTFB) shows a 10ms (14%) decline. While some overhead typically accompanies new features, these declines point to areas where we can improve in the future.

Classic themes show a smaller 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. (Twenty Twenty-One was tested). The median Largest Contentful Pain (LCP) time shows a slight 1ms or 1% decline in tests, and the median Time To First Byte (TTFB) shows a 1.2ms (3%) decline. 

Further details on the methodology behind these measurements are provided later in this article, along with an explanation of possible regression sources.

Key changes

Priming transient and transient timeout options in `get_transient`

On sites without a persistent cache, temporary transients are stored in two options. One containing the transient itself, the other containing the timeout. In #61993 the querying of expiring transients is reduced from two to a single database request. Impact could be significant on sites running plugins that make heavy use of transients.

Obsolete polyfills dependencies have been removed

In #60962 now obsolete polyfills such as wp-polyfill, wp-polyfill-inert and regenerator-runtime were removed from the reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. script dependency in WordPress. They are no longer needed in modern browsers supported by WordPress. Typical sites using React on the front end may see a moderate performance improvement because these scripts will no longer need loading and contend for resources other scripts might need. 

Disable autoload for large options

In #42441, autoloading for options was given more granular control. In addition, when options are added without explicitly setting an `autoload` value, WordPress will automatically skip autoloading for large options (see dev note). The goal of this change is to reduce slow database responses, sometimes caused by very large autoloaded options.

Add a “Audit Autoloaded Options” section in Site Health

#61276 adds a test under the Site Health section to monitor autoloaded options. It displays the number and size of autoloaded options. It shows a ‘good’ status if the autoloaded options are within acceptable limits but a ‘critical’ status if the autoloaded options exceed the predefined threshold (default: 800,000 bytes), indicating a potential performance issue.

Cache block theme patterns persistently

In [58025], block theme patterns caching was updated to use transients so in order to extend the performance benefits of caching these patterns to sites that are not running an external object cache. Our initial benchmarks showed that eliminating the cost of loading all of the Twenty Twenty Four theme’s block patterns on each request saved ~13% of the total server response time.

Introduce wp-on-async directive as performant directive

In Gutenberg PR 61885 a new wp-on-async directive was added 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.. This ensures that when there are multiple directives for the same event, they do not add up to a long task. This is also true if a single directive itself causes a long task. It also gives the main thread time to update the UIUI User interface before running any potentially long handler code, since this directive yields to the main thread immediately before invoking the action/callback. CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks including navigation, query pagination and search were all updated to use the new async callbacks in GB PR #62160. Lastly, if an action is unable to leverage wp-on-async due to needing synchronous access to the event object, the wordpress/interactivity package now exposes a splitTask() function which can be used to manually yield in the callback. See example in the documentation for Async Actions

Enable lazy-loading of post embeds

WordPress lets you embed a preview of a post into another post simply by pasting its URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in the editor. In #58773, the resulting iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. is now automatically lazy loaded similar to the way other embeds are lazy loaded.

Optimizations for transients

Networknetwork (versus site, blog) transients are now primed in a single call and get_site_transient was updated to prime multiple caches at once. The wp_prime_network_option_caches function was added, saving ~3 datebase calls per page load on 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. See #61193 and #61053.

How release performance is measured

The performance measurements used for the overview are based on benchmarks 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 and Twenty Twenty-Four themes with and without object caching enabled via memcached, comparing WordPress 6.6 with WordPress 6.5.5 (the latest version of WP 6.5 available when 6.6 was released).

Performance metrics were collected from 100 runs for both Core 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

The report data is summarized in this document

Full report data is below:

Follow up from this release

  • An issue was opened to investigate where the regressions may have come from. Current investigations point to a couple of possible regression points:
    • r57920: Options, 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. APIs: Use more sensible default for autoloading options.
    • r58264: Block Themes: Add section styling via extended block style variations – which is  being worked on in core.trac.wordpress.org/ticket/61451.
  • The performance team is working to improve our performance testing tools consistency and robustness, including a roadmap for performance testing next steps.
  • Performance Labs – the plugin(s) we use to test out new performance features for core – continues to add new features such as Image Prioritizer , Embed Optimizer, Speculative Loading, Performant Translations and Modern Image Formats (added AVIF and picture element support), and Enhanced Responsive Images.
  • Work on better alignment between test methodologies for Core and 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/.

Thanks to @westonruter, @joemcgill  and @annezazu and @spacedmonkey for contributing to this post.

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

Performance Chat Summary: 23 July 2024

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

Announcements

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 (6.7)
    • Future releases
  • 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)
    • Enhanced Responsive Images
    • Embed Optimizer
    • Image Prioritizer
    • Image Placeholders
    • Modern Image Formats
    • Optimization Detective
    • Performant Translations
    • Speculative Loading
  • Active priority projects

WordPress Performance Trac Tickets

  • There are currently 16 performance issues in 6.7
  • @pbearne I need input on this ticketticket Created for both bug reports and feature development on the bug tracker. as I made opinionated changes as to which option should not be autoloaded #61103
    • @joemcgill I plan on digging into that PR to give you feedback, but am going to be out on holiday for a bit. If anyone else has time to look at this in the mean time, please do so.
    • @mukesh27 I will take a look this week
    • @joemcgill One thing that will be good to understand, is that if we aren’t autoloading options that are only needed in the adminadmin (and super admin), how do we make sure the editor experience isn’t negatively affected. I think you’re already planning on priming all of those options in the admin, but would be good to get some performance measurements of the before/after of both the front end and admin.
    • @pbearne I have a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. to load the admin options in back on wp_int

Performance Lab Plugin (and other Performance Plugins)

  • @mukesh27 I have been working on PRs that ready for review:
    • Performance Lab plugin:
      • PR #1374 – Autoloaded Options Health Check: Disabled options reappear in Site Health after external update
    • Modern Image Formats plugin:
      • PR #1354 – Picture element: The accurate sizes improvement for images not working
  • @westonruter It seems like we’re getting increasing reports of issues with image generation in Modern Image Formats
    • In GitHub and support forums
    • @westonruter Might be related to the issue of AVIF generation taking a very long time sometimes?
    • @joemcgill Ah, I do remember cases a long time ago where image generation could take longer than the max PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher timeout on some hosts and result in the attachment data being created in the DB while the actual image generation failed. I wonder if something like that is happening?
    • @westonruter That’s being discussed here: https://github.com/WordPress/performance/issues/371
    • @adamsilverstein this could also be a support detection issue, (where format support for AVIF gives a false negative or positive), interesting they say it falls back to WebP
    • @westonruter I wonder if the AVIF generation should be moved a background process? Use the JPEG immediately upon upload and then use the AVIF once it is available
    • @adamsilverstein we already have a way of generating images in multiple passes, but it needs to be able to process one image completely before the timeout
    • @joemcgill That’s a good idea. There is prior art for generating missing intermediate sizes that could be referenced.
    • @pbearne Idea: we need a long process control for wp-admin that can be used for any task that takes a long time (images gen, post delete, etc.)
    • @adamsilverstein https://github.com/WordPress/performance/issues/490 was part of that previous effort, there is also a trac ticket
    • @westonruter I thought that was primarily for regenerating the entire media library
    • @adamsilverstein yes, but part of that was the ability to regenerate images in i the background #6814 16 year old ticket
    • @joemcgill It’s not totally accurate anymore, after #40439
    • @adamsilverstein true, we partially solved the issue with that, as long as the user agent remains present to trigger the retries
    • @joemcgill I’ve played with using WP_Cron for this a looooooong time ago, but that can cause failures to affect end-user front-end requests, which we’d want to avoid

Active Priority Projects

Improving the calculation of image size attributes

  • @mukesh27 For Improving the calculation of image size attributes i have been working on:
    • PR #1382 – Update wp_calculate_image_sizes to Reflect Changes in sizes attribute
    • Issue #1389 – Accurate sizes improvement didn’t account for the disable 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. for sizes
    • @joemcgill I’m reviewing those this morning

Plugin Check

Open Floor

  • WordPress 6.6 performance analysis
    • @adamsilverstein Yes… I have been working on a post for 6.6 performance changes and will share a draft here for feedback soon!
    • one challenge has been identifying the source of the slight regressions we see in 6.6 (the numbers haven’t changed much since I shared results here for an RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). a few weeks ago)
    • part of the challenges is tracking changes that originate in the 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/ project and are then merged over to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. our automated tests haven’t highlighted issues, nor are the Gutenberg performance tests
    • some ideas: it might be because the regressions are very small and spread out over a number of commits, or it might be related to the difference in how we are doing automated tests. in case, it points to an area we can improve
    • @joemcgill Agreed. There are a number of improvements that we could make to our CI infrastructure in both the GB repo and in Core that would help. We’ve already got https://github.com/WordPress/performance/issues/1380 as a place to discuss a set of improvements we want to focus on next. I’d love to see more discussion there so we can define and prioritize some next steps.
    • One of the questions that I still have is whether the benchmarks that we have been taking at the end of each release are providing us with useful info, or if they are obscuring what is really happening in the field.  @adamsilverstein I’m curious if we could get some HTTPArchive data after 6.6 has been out a while to see if our lab benchmarks relate to real user data or not.
    • @adamsilverstein that is a good point, I’m happy to work on that. we should have enough data in a few months.
    • some performance improvements we are adding will really only become apparent in the field data, and our automated testing can’t really measure those

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

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

Performance Chat Agenda: 23 July 2024

Here is the agenda for this week’s performance team meeting scheduled for July 23, 2024 at 15:00 UTC.

  • Announcements
  • 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
      • Future release
    • 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) including:
      • Enhanced Responsive Images
      • Embed Optimizer
      • Image Prioritizer
      • Image Placeholders
      • Modern Image Formats
      • Optimization Detective
      • Performant Translations
      • Speculative Loading
    • Active priority projects
  • Open floor
    • WordPress 6.6 performance analysis

If you have any topics you’d like to add to this agenda, please add them in the comments below.


This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

#agenda, #meeting, #performance, #performance-chat