WordPress 6.3 性能大幅提升 速度优化解析

WordPress 6.3 即将发布,本文将深入探讨该版本带来的性能改进。虽然 WordPress 6.2 已经显著提升了内核加载时间性能,设定了新的行业标准,但 WordPress 6.3 更是超越了这些成就。根据 RC3 的性能基准测试,WordPress 6.3 块主题的加载速度提高了 24%,经典主题的加载速度提升了 18%,这些改进均基于最大内容绘制(LCP)指标。与 WordPress 6.2 相比,这些提升分别达到了 18% 和 5%,因此可以公正地认为 WordPress 6.3 在性能方面是一项重大突破。

### 文章目录

Toggle

#### 是什么让 6.3 速度如此之快?

#### 客户端性能

#### 服务器端性能

#### 关于所使用的基准的说明

#### 自动化基准测试工作流程

#### 参与其中

### 是什么让 6.3 速度如此之快?

要深入解析 6.3 中的性能改进,首先需要理解不同的加载时间性能指标及其相互关系。最全面的指标是最大内容绘制(LCP),因为它全面衡量了总体加载时间性能。因此,本文引言中提到的百分比都是基于 LCP 改进的专门测量值。

LCP 的一个关键组成部分是首字节时间(TTFB)指标,它反映了服务器端加载时间性能,直接影响 LCP。实际上,TTFB 是对 LCP 结果贡献显著的服务器端部分。对于客户端加载时间性能,虽然没有独立的专用指标,但客户端性能本质上涵盖了其他所有方面,因此可以通过 LCP 和 TTFB 之间的差异来表示,即“LCP-TTFB”。

### 客户端性能

在 WordPress 6.2 中,大部分性能提升来自于服务器端性能(TTFB)的改进。然而,在 WordPress 6.3 中,情况发生了变化:大部分性能提升源于客户端性能的显著改进(LCP-TTFB)。事实上,与 WordPress 6.2 相比,WordPress 6.3 中的块主题客户端性能提高了 40%,经典主题的客户端性能提升了 31%。作为参考,WordPress 6.2 与 6.1 之间的 LCP-TTFB 提升分别仅为 1.5% 和 2.5%。

绝大多数客户端性能改进来自于 emoji-loader.js 的优化,通过利用现代 JavaScript API(如 Web Workers、OffscreenCanvas 和 sessionStorage)。除非您的 WordPress 网站禁用了表情符号功能,否则您应该能明显感受到这一改进带来的性能提升。更多背景信息请参阅 #58472 和 #56074。

客户端性能改进的另一个显著部分源于对 fetchpriority=”high” 图像属性的支持。这一改进仅与首屏上带有图像的内容相关,但鉴于图像是网页上最常用的媒体,您很可能也会注意到这一增强带来的性能提升。有关如何作为开发人员利用和修改新功能的全面概述,请参阅有关图像性能改进的 6.3 开发说明。更多背景信息请参阅 #58235 和 #56037。

以下列表重点介绍了一些可以在某些情况下提高客户端性能的附加工单,其中一些工单增强了是否向 loading=”lazy” 图像添加属性的启发:

#54421 #56588 #58089 #58211 #58212 #58213 #58635 #58680 #58681 #58704

最后但并非最不重要的一点是,引入了脚本加载策略,增加了对使用 defer 或 async 加载脚本的支持。这是性能的一个重要里程碑,但目前仅引入了 API 本身,尚未对性能产生实际影响。随着 WordPress 核心和生态系统开始采用 API(如延迟块视图脚本和异步评论回复),预计未来将看到显著的性能改进。有关更多信息,请参阅 6.3 开发说明有关使用 async 和 defer 注册脚本。

### 服务器端性能

虽然 6.3 中的服务器端性能改进总体上不如客户端性能提升显著,但该版本仍然包含一些重要的增强功能,特别是对于块主题,服务器响应时间加快了 15%。许多服务器端性能增强都是优化 WordPress 核心内部低级逻辑的结果,这些改进虽然难以单独描述,但无需在 WordPress 生态系统中进行任何额外采用或修改即可生效。

块主题最显著的性能增强之一是低级更改,优化了 WordPress 核心块样式的注册方式。这是相关的,因为核心块样式的处理方式与自定义块略有不同。但在 6.3 之前,所有块都使用相同的通用逻辑,包括相当多的灵活性,但也带来了性能成本,这对于核心块是不必要的。这一变化引入了一个专用函数,以更高效的方式注册核心块样式。更多背景信息请参阅 #58528 和 #56044。

块主题性能的另一个重大胜利是 get_block_templates() 函数的改进。该函数中的逻辑经过优化,不再处理所有块模板,而仅处理与当前查询匹配的模板。更多背景信息请参阅 #57756 和 #55687。

wp_common_block_scripts_and_styles() 函数是另一个值得强调的优化功能。此增强功能仅与混合主题相关,特别是调用 add_theme_support( ‘wp-block-styles’ ) 的经典主题,对于这些主题,它会显著提高服务器端性能。更多背景信息请参阅 #58560 和 #56064。

对块主题和经典主题具有显著性能影响的最大变化是 wp_maybe_inline_styles() 函数中的性能优化,避免了不必要地调用相对昂贵的函数来获取样式表文件的大小和内容。更多背景信息请参阅 #58394 和 #55888。

以下列表重点介绍了一些可以在某些情况下提高服务器端性能的附加工单:

#57683 #57814 #57864 #58321 #58376

### 数据库性能

WordPress 6.3 对延迟加载元数据进行了多项增强,可以避免某些情况下的数据库查询。更多背景信息请参阅单独的工单 #57227、#57645、#57901 和 #58185。

此外,get_pages() 函数现在在内部使用 WP_Query,这不仅消除了重复代码,更重要的是,它带来了性能改进,因为它现在受益于相同的可靠缓存行为,这是以前的自定义实现中所缺少的功能。更多背景信息请参阅有关该函数的 6.3 开发说明 get_pages() 和工单 #12821。

最后但并非最不重要的一点是,WP_User_Query 类现在支持缓存查询结果,成为最后一个支持它的 WordPress 核心查询类。这样可以避免查询用户信息时查询数据库。更多背景信息请参阅有关缓存的 6.3 开发说明 WP_User_Query 和工单 #40613。

### 关于所使用的基准的说明

虽然本文中分享的指标基于与使用 WordPress 6.2 相同方法进行的基准测试,但任何基准测试都需要进行细微差别的解释:除了用于基准测试的 WordPress 网站的配置方式之外,基准测试在很大程度上取决于环境。为了获得额外的参考点,一些不同的贡献者还基于该版本的稍早版本 6.3 RC1 进行并分享了他们的基准测试。所有基准测试结果均汇总在此电子表格中。

可以注意到,其他一些基准测试并没有看到突出显示的基准测试中注意到的那么高的改进(就上下文而言,这些基准测试是在作者的机器上运行的),但主要的结论是整体性能显著提升。目前,将重点放在性能基准上并使用本文中突出显示的数字是有意义的,以便与上述 6.2 性能改进帖子中的数字保持一致,因为性能基准也使用相同的环境。对于相对改进不那么高的任何其他贡献者的基准,可以假设其环境中的 6.2 性能基准也会显示出同等较低的性能提升。

虽然这意味着我们无法得到 WordPress 6.3 到底快了多少的明确答案,但可以肯定地说,它比 6.2 快很多,而且相对而言,性能提升甚至比 6.2 和 6.1 之间还要高。

### 自动化基准测试工作流程

引用的一些基准测试是使用 @swissspidy 最近实施的新的可重用自动化基准测试工作流程进行的,使用与手动基准测试相同的方法,但使用 GitHub Actions。这些结果表明,由于使用相同的环境,使用此工作流程总体上可以获得更一致的结果,并且还减少了进行性能基准测试所需的工作量。将来,依赖该工作流程中的数字而不是来自特定贡献者的任意环境的数字可能是一个好主意。作为参考,自动化工作流程数字大致表明了 WordPress 6.3 与 6.2 相比的以下性能改进:

– LCP:对于块主题快 13.9%,对于经典主题快 9.3%。
– TTFB:对于块主题快 8.4%,对于经典主题快 1.1%。
– LCP-TTFB:对于块主题快 20.6%,对于经典主题快 11.5%。

### 参与其中

如果您有兴趣致力于提高整个项目的性能,请务必加入 #核心编辑器 和 #核心性能,并参加双方的会议。

文章网址:https://www.wpbull.com/news/2073.html