在证明加载翻译对响应时间有显着影响之后,核心性能团队今年花费了大量时间研究WordPress 中i18n / l10n系统的性能。这导致了深入的性能分析,随后是一个专用的高性能翻译功能插件,为所有零配置的 WordPress 网站提供了显着的性能提升。数千个网站在各种条件下成功测试了该插件。现在,该团队相信该解决方案已准备好纳入 WordPress 核心。
推荐阅读:WordPress.org 已上架高性能翻译插件,用以解决翻译导致的性能问题
它能做什么
高性能翻译(Performant Translations)由新的轻量级 i18n 库提供支持,该库加载二进制 MO 文件的速度更快,并且使用的内存更少。它甚至支持同时加载多个语言环境,这使得语言环境切换更快。除此之外,它还支持PHP文件中包含的翻译,避免使用二进制文件格式并利用 OPCache(如果可用)。如果 MO翻译文件有相应的 PHP 文件,则将加载后者,从而使速度更快并使用更少的内存。从原始数据来看,这种方法的优化效果如下:
语言环境 | 加载方式 | 内存使用情况 | 加载时间 |
---|---|---|---|
en_US | 默认 | 15MB | 159 毫秒 |
de_DE | 默认 | 29MB | 217 毫秒 |
de_DE | 高性能翻译 | 17MB | 166 毫秒 |
这些数字是通过使用“Twenty Twenty-One”主题和一些活动插件针对 WordPress 6.5-alpha-57028 测试 Performance Translations 插件而获得的。正如您所看到的,内存使用量和加载时间开销已降至最低。
下一步
核心性能团队已开放#59656,以便及时跟踪将 Performant Translations 合并到下一个 6.5 版本的核心中。拉取请求已经可用,目前正在进行代码审查。一旦完成,它将准备好合并到主干中,库将能够进行更广泛的测试。
还有一个Meta 补丁,可以将 PHP 文件作为translate.wordpress.org提供的语言包的一部分提供服务,该补丁建立在GlotPress PR 的基础上。两者现在都需要代码审查。虽然这两项更改释放了 Performance Translations 的全部功能,但它们并不是核心合并的障碍,甚至可能稍后落地。
即使在核心合并之后,Performant Translations 插件也将继续维护,以构建在具有独特附加功能的核心解决方案之上。与今天的情况一样,如果当前不存在 PHP 文件,该插件会自动将任何 MO 文件转换为 PHP 文件。这对于翻译不是来自translate.wordpress.org或仅存在于该服务器本地的网站非常有用。