走廊闲逛:WordPress 6.2的性能改进
6.2提高性能,特别是 块 块 块是一个抽象术语,用于描述使用WordPress编辑器组合在一起形成网页内容或布局的标记单元。 这个想法结合了过去可能通过短代码、自定义HTML实现的概念,并将发现嵌入到单一一致的API和用户体验中。 主题。 由于可配置性更高,块主题的服务器响应时间仍然比经典主题慢。 基于区块主题的工作方式,它们允许我们在客户端性能方面比经典主题做得更多。 测试环境可能会大不相同,这使得有时很难进行复制,而且在进行交叉比较之前,人们必须在不同的环境中运行。 绩效下降似乎是由PR的积累引起的,而不是由少数PR引起的微小变化。 另一方面,对象缓存的改进是大多数改进的原因。 一些回归很小,几毫秒,重要的是要考虑到百分比变化的背景。 有一种感觉,有一个机会与新的机制,如主题。 杰森 JSON格式 JSON或JavaScript Object Notation是结构化数据的最小可读格式。 它主要用于在服务器和web应用程序之间传输数据,作为XML的替代。 ,以带来更大的性能改进。 需要从几个角度对开发人员进行教育:文档、学习WP内容、开发人员工具、自动化测试。 在进行性能测试时,我们需要区分一致性和差异覆盖率。 从小处做起,然后扩展。 在进行这些测试时,一致性至关重要。 无论这项工作做得多好,性能结果总是会有一些差异,并且无法涵盖所有实际情况。
作为 最后走廊的一部分 并且是6.2周期的一个新角色,需要在一定程度上创建一条新的路径。 @ 弗利克索斯90 担任这一角色,并分享了他迄今为止的经历。 职责包括:优先考虑性能增强,捕捉性能退化并与相关团队合作修复,跟踪WordPress的总体加载时间性能 核心 核心 核心是运行WordPress所需的一组软件。 核心开发团队构建WordPress。 发布。 更具体地说,这项工作包括定期使用性能重点关键字审查门票,评估不同PR的性能,并对WordPress进行总体性能分析 大旅行箱 大旅行箱 Subversion中的一个目录,包含为下一个主要发布周期做准备的最新开发代码。 如果您运行的是“trunk”,那么您使用的是最新版本。 / 贝塔 贝塔 一种预先发布的软件,分发给大量用户在真实条件下进行试用。 Beta版已经在内部进行了alpha测试,在外观、感觉和功能上与最终产品相当接近; 然而,设计更改经常作为过程的一部分发生。 / 钢筋混凝土 发布候选 作为版本发布周期的最后阶段之一,这个版本标志着有可能成为公众的最终版本。 另请参见 α(β) . 确定显著的胜利和倒退。 通过依赖 自动化核心测试环境 . 未来,这一角色可以扩展到6.3,包括一般分析,以主动识别要关注的瓶颈。
在改进性能方面,我们做了很多工作,特别是针对6.2的块主题 @ spacedmonkey(空格键) 尽管如此,区块主题的数量仍然无法与经典主题相比。 区块主题速度慢2-3倍。 很难保持与经典主题相同的性能水平,因为块主题在生成页面时会做更多的工作。 虽然块主题的服务器响应时间较慢,但部分原因是可配置性较高。 基于区块主题的工作方式,它们允许我们在客户端性能方面比经典主题做得更多。 还没有衡量这在多大程度上抵消了服务器端的负面影响。
很多小事情导致了衰退,而不是一个主要的公关,有时很难解决。 另一方面,对象缓存工作是6.2的大部分改进的原因。 我们是否应该过于优先考虑小问题而不是真正的大问题? 我们可以优先考虑较小的项目,并对PR进行闪电巡查。 小的调整确实会起作用,但我们也不想妨碍开发。 在较新的系统中,如theme.json, @ 安大略省的 相信有更多的空间可以改进。 例如,通过theme.json缓存,回想起来,设置是显而易见的。 然而,你并不总是能预料到你写的电话将如何被使用。 较新的系统可能会有更大的改进空间,而其他系统则更像是小调整。
@ spacedmonkey(空格键) 谈到他希望看到更多的开发人员教育完成。 帮助人们编写高性能代码或学习使用查询监视器可以帮助整个生态系统得到改善。 有机会将此融入Learn WP work too cc @ 木虱 供考虑(在电话中对你大喊大叫)。 重要的是,不仅要发布这些改进,还要宣传这些改进并将其传播出去。 如果我们开始注意到一致的代码模式,即人们以可以优化的特定方式重复使用某些函数,那么我们可以与其他Make Teams合作,帮助加强最佳实践。 @ 粗花呢 如果在开发人员工具级别上可以完成更多工作,特别是对于核心开发人员来说,则会提出此问题。
不希望自动化套件阻碍我们自己的测试和调整。 即使是很小的更改,例如使用 区域设置 区域设置 语言环境是语言和地区方言的组合。 通常,语言环境与国家相对应,葡萄牙语(葡萄牙)和葡萄牙文(巴西)就是这样。 其他语言环境示例包括加拿大英语和美国英语。 或者加载30个帖子而不是10个帖子,可能会产生很大的差异。 考虑我们想在哪些环境中运行测试是很重要的。一些示例环境–少量内容、大量内容、一个没有任何语言包、一个具有不同语言环境等。 我们可以从小处做起,扩大规模,因为我们永远无法覆盖现实世界。 它总是有限的。 最重要的是,我们要在一致的环境中进行测试。 无论我们做得多好,性能结果总会有一些差异。 @ 粗花呢 提出了区分一致性和差异覆盖率的需要。 在自动化测试中,设置的一致性很重要,但我们不应该永远只依赖一组配置。 应该手动增加差异覆盖范围。 在一天结束时保持一致性是非常重要的。 @ spacedmonkey(空格键) 因为58%的网站不是用英语运行的,所以从小就想用不同的语言进行简介。 对于大多数网站来说,翻译后的字符串上很有可能会有一些唾手可得的结果。
讨论了Blackfire帐户 核心贡献者 核心贡献者 核心贡献者是那些通过创建功能或查找和修补错误来开发WordPress版本的人。 这些贡献是通过Trac完成的。 https://core.trac.wordpress.org。 因为过去曾与他们进行过对话。 不是这样的 开源 开放源代码 开放源代码是指原始源代码可以免费获得,并且可以重新发布和修改的软件。 开源**必须**通过许可模式交付,请参阅GPL。 但不能广泛用于 插件 插件 插件是一个包含一组功能的软件,可以添加到WordPress网站。 他们可以扩展功能或为WordPress网站添加新功能。 WordPress插件是用PHP编程语言编写的,并与WordPres无缝集成。 这些可以在WordPress.org插件目录中免费 https://wordpress.org/插件/ 或者可以是第三方基于成本的插件 以及主题作者。 @ spacedmonkey(空格键) 对说 发出砰的声响 发出砰的声响 向端点发送少量数据的行为。 Ping在计算机科学中用于非法获取目标服务器的响应以测试其连接。 Ping也是Slack用户向@someone或向他们发送直接消息(DM)时使用的术语。 用户可能会这样说:“会议开始时向我发送Ping。” 如果人们想要一个用于测试和探索的帐户的话,他会选择。 这是另一个需要明确文档说明如何设置和使用什么的领域。
@ 弗利克索斯90 问 @ 安大略省的 关于古腾堡正在进行的工作 添加更多前端渲染指标 . 目前,LCP的数据还不多,因为它几天前才登陆。 与具有更多差异的类型相比,到达第一个字节的时间没有太大差异。 由于前端测量值的方差较小,因此应该更容易找到回归,因为它们比其他测量值更稳定。 到目前为止,还没有大量的数据,但由于当前的设置,需要注意这些数据。 例如,我们需要使用模板来使用大图像来发现其他类型的回归。 @ 弗利克索斯90 共享了 网络要害GitHub回购 这应该与核心web关键点的测量方法非常接近。 @ 安大略省的 分享了这个库做了一些他实现的测试没有做的事情。特别是随着我们的增长和添加更多的指标,使用这个库会有帮助。
WordPress TTFB:5.6到6.2的演变 发布自 @ 安大略省的 . 经典主题的“wp_enqueue_global_styles()”中的性能回归 . WordPress 6.2的TTFB 从 @ 安大略省的 . WordPress 6.2服务器端性能检查 从 @ 安大略省的 . 在性能测试中添加前端渲染指标 对于Gutenberg,包括性能测试结果的链接: https://codehealth.vercel.app/project/1