这篇文章是一系列主要版本性能改进更新中的最新一篇(请参阅6.5,6.4,6.3、和6.2).
2024年7月16日,WordPress 6.6“多尔西”已向公众发布,其中包括一些显著的性能改进。此版本继续了以前版本的工作,为编辑器提供了显著的性能改进。模板加载显著提高了35%以上这个跟踪问题捕获所有块 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。编辑器改进。对于连续第二个版本,添加了重要的新功能,用户可以自定义自己的网站,同时确保对服务器响应时间的影响最小。
这篇文章总结了自6.5中的上一个版本以来的性能变化分支 Subversion中的目录。WordPress使用分支来存储每个主要版本(3.9、4.0等)的最新开发代码。然后使用该分支的任何次要版本的代码更新分支。有时,WordPress的主要版本及其次要版本统称为“分支”,例如“4.0分支”。(6.5.5)和6.6版本,然后深入研究最重要的性能相关更改的细节。
分析表明,区块主题(测试了二十四分之一)的表现出现了适度的衰退。最大满意疼痛(LCP)时间中位数在测试中显示出7毫秒或5%的轻微下降,第一个字节的时间中位数(TTFB)显示出10毫秒(14%)的下降。虽然一些开销通常伴随着新功能出现,但这些下降指向了我们未来可以改进的领域。
经典主题显示较小的回归,回归 破坏或降级以前工作过的东西的软件错误。回归通常被视为关键错误或拦截器最近的倒退可能会被给予更高的优先级。“3.6回归”是3.6中的一个缺陷,它在3.5中起到了预期的作用。(测试了二十一个)。最大满意疼痛(LCP)时间中位数在测试中显示出1ms或1%的轻微下降,第一个字节的时间中位数(TTFB)显示出1.2ms(3%)的下降。
本文稍后将提供有关这些度量背后的方法的更多详细信息,并解释可能的回归来源。
主要变化
启动`get_transient中的瞬态和瞬态超时选项`
在没有持久缓存的站点上,临时瞬态存储在两个选项中。一个包含瞬态本身,另一个包含超时。在#61993过期瞬态的查询从两个减少到一个数据库请求。对于运行大量使用瞬变的插件的站点,影响可能非常大。
已删除过时的填充依赖项
在#60962现在,从反应 React是一个JavaScript库,可以很容易地推理、构建和维护无状态和有状态的用户界面。https://reactjs.org/.WordPress中的脚本依赖项。WordPress支持的现代浏览器不再需要它们。在前端使用React的典型站点可能会看到适度的性能改进,因为这些脚本不再需要加载并争用其他脚本可能需要的资源。
禁用大选项的自动加载
在#42441,选项的自动加载得到了更精细的控制。此外,如果在没有明确设置“自动加载”值的情况下添加选项,WordPress将自动跳过大选项的自动加载(请参阅开发说明). 此更改的目的是减少数据库响应速度较慢,有时是由非常大的自动加载选项引起的。
在站点运行状况中添加“审核自动加载选项”部分
#61276在“站点运行状况”部分下添加测试以监视自动加载的选项。它显示自动加载选项的数量和大小。如果自动加载的选项在可接受的范围内,则显示“良好”状态,但如果自动加载选项超过预定义的阈值(默认值:800000字节),则显示为“严重”状态,表明存在潜在的性能问题。
持久缓存块主题模式
在[58025]块主题模式缓存被更新为使用瞬态,以便将缓存这些模式的性能优势扩展到未运行外部对象缓存的站点。我们的初始基准测试表明,消除了在每个请求上加载所有“二十四”主题的块模式的成本节省了约13%总服务器响应时间的百分比。
引入wp-on-async指令作为性能指令
在古腾堡PR 61885一个新的wp-on异步指令已添加到交互美国石油学会 API或应用程序编程接口是一种软件中介,允许程序相互交互并以有限的、明确定义的方式共享数据。。这样可以确保当同一事件有多个指令时,它们不会构成一个长任务。如果一个指令本身导致一个长任务,这也是正确的。它还为主线程提供了更新用户界面 用户界面在运行任何可能很长的处理程序代码之前,因为此指令在调用操作/回调之前立即向主线程屈服。核心 核心是运行WordPress所需的一组软件。核心开发团队构建WordPress。包括导航、查询分页和搜索在内的块都进行了更新,以便在中使用新的异步回调GB PR#62160最后,如果操作由于需要同步访问事件对象而无法利用wp-on-async,则wordpress/interactivity包现在会公开一个splitTask()函数,该函数可用于在回调中手动生成。请参阅文档中的示例异步操作.
启用后嵌入的延迟加载
WordPress允许您通过粘贴一篇文章的预览,将其嵌入到另一篇文章中统一资源定位地址 互联网上网站或网页的特定网址,例如网站的URL www.wordpress.org在编辑器中。在#58773,结果iframe公司 iFrame是内联框架的缩写。iFrame用于在网页中加载另一个HTML文档并呈现它。该HTML文档还可能包含JavaScript和/或CSS,在用户浏览器解析iFrame标记时加载。现在自动延迟加载,类似于其他嵌入式延迟加载的方式。
瞬态优化
网络 (与网站、博客相比)瞬变现在在单个调用中启动获取站点瞬态
已更新为同时对多个缓存进行质控。这个wp_prime网络选项缓存
添加了函数,在上每加载一页可节省~3个数据库调用多站点 用于描述WordPress安装,该安装包含多个博客网络,按站点分组。此安装类型具有共享用户表,并为每个博客创建单独的数据库表(wp_posts变为wp_0_posts)。另请参见网络,博客,网站。请参阅#61193和#61053.
如何衡量发布性能
概述中使用的性能度量基于使用自动化工作流在github GitHub是一个提供git存储库在线实现的网站,其他开发人员可以轻松共享、复制和修改这些存储库。公共存储库可以免费托管,私有存储库需要付费订阅。GitHub引入了“拉请求”的概念,在将贡献者在分支中所做的代码更改合并为存储库所有者之前,可以对其进行审查和讨论。https://github.com/动作跑步者。对通过memcached启用或不启用对象缓存的二十二个一和二十四个四主题的主页进行了基准测试,并将WordPress 6.6与WordPress 6.5.5(WP 6.5的最新版本在6.6发布时可用)进行了比较。
从100次核心网络重要信息(CWV)和服务器定时标头由性能实验室提供插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。他们可以扩展功能或为WordPress网站添加新功能。WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。这些可以在WordPress.org插件目录中免费https://wordpress.org/插件/或者可以是第三方基于成本的插件使用WPP Research回购中的CLI脚本.
基准数据
报告数据汇总于这个文档.
完整报告数据如下:
- Twenty Twenty-One——经典主题
- 二十四小时——街区主题
此版本的后续操作
多亏了@威斯顿鲁特,@乔麦吉尔以及@安娜扎祖和@spacedmonkey(空格键)感谢你对这篇文章的贡献。
#6-6,#核心,#核心绩效,#性能