WPML

我们刚刚发布了 WPML 4.3,其中包含一种全新的字符串翻译方式。字符串翻译管理后台的外观保持不变,但工作原理有所不同。它不再从数据库读取翻译,而是生成并加载 .mo 文件。这大大降低了字符串翻译对数据库的占用。

为什么我们要重写字符串翻译?


上一版字符串翻译从数据库加载字符串,并试图避免加载 .mo 文件。一些大型 WordPress 插件附带巨大的 .mo 文件,用于翻译插件中的每一处文本。例如,WooCommerce 的 .mo 文件包含 8,000 多个字符串。其他大型插件也有类似的字符串数量。

当您运行英语网站时,WordPress 不会加载这些 .mo 文件。但是,当您运行任何其他语言的网站(仅一种语言,而非多语言网站)时,WordPress 将加载所有这些 .mo 文件。加载这些文件需要 100ms 到一秒多不等,具体取决于您使用的服务器。这些 .mo 文件将在运行该插件的任何页面上加载(通常是网站的所有页面)。

在 WPML 4.3 之前,我们一直试图优化这种机制。WPML 有一个默认启用的选项,可阻止主题和插件加载 .mo 文件。相反,我们会检查每个页面需要哪些字符串,并从数据库中加载这些特定的字符串。

该机制总体运行良好,但有时会适得其反。当某个插件在每次页面加载时命中大量字符串,WPML 会从数据库加载庞大的字符串列表,而不是让插件加载自己的 .mo 文件。

随着一些插件的不断庞大,我们的优化机制变得越来越低效。

在 WPML 4.3 中,我们决定是时候改变方法了。我们停止了阻止 .mo 文件,也停止了从数据库加载字符串。现在,WPML 不再尝试优化其他插件或主题的翻译时间,只优化自身的字符串。

这将如何影响我网站的加载时间?


视情况而定。如果您的网站一直很快(大多数使用 WPML 的网站都是如此),您不会感觉到速度有明显变化。例如,在 wpml.org 上,大多数页面的速度略有提升,少数页面的加载时间略有增加。

现在有些页面加载时间稍长的原因在于,有其他插件正在加载巨大的 .mo 文件。优化字符串翻译带来的速度提升被其他插件的 .mo 文件加载时间抵消了。

不过,这些波动非常小,我们只能使用高级分析工具才能测量出来。一直运行很快的网站在升级到 WPML 4.3 后通常会继续保持较快的运行速度。

一些曾经加载缓慢的网站现在将加载得更快。在 WPML 4.3 之前,有些网站需要从数据库加载数以万计的字符串。这给数据库造成了巨大负担,消耗了大量内存,并导致页面加载时间过长。这些网站的性能将得到非常显著的改善。

后续还会有更多性能优化吗?


是的。既然我们已经消除了字符串翻译带来的主要性能问题,我们将有更多机会进行优化。

我们预计会发现一些需要与其他插件和主题作者合作解决的问题。当插件和主题加载更少的字符串时,性能提升最大。大多数其他插件和主题作者都很乐意与我们合作,我们有信心解决接下来出现的几乎所有性能问题。优化过程几乎总是相同的:


  • 将巨大的 .mo 文件拆分为几个较小的文件

  • 在正确的页面上加载正确的文件

简单的细分是将管理后台使用的字符串与在前端显示的字符串分开。更深入的优化会根据页面类型进一步细分前端字符串。例如,在电子商务网站上,无需在每个页面都加载结账过程中使用的字符串。

当然,当 WPML 内部有机会进行优化时,我们会立即处理。

更新、测量和报告


WPML 4.3 目前正在部署中。我们将在接下来的一到两周内逐步发布。如果您的网站尚未收到此更新,请耐心等待,几天后您就会看到更新。您可以跳过排队立即获取此更新,方法是前往插件 –> 安装插件页面,单击商业选项卡,然后使用检查更新按钮。

如果您觉得网站上任何页面的加载时间变长,我们建议您安装 Query Monitor 插件(请按照我们的关于如何使用 Query Monitor 分析性能问题的教程操作)。请注意,在 WPML 4.3 中,我们修复了与 Query Monitor 的重大兼容性问题,因此您看到的报告对 WPML 4.3 之前的版本没有用处。

查看 WPML 调用是否在加载报告中频繁出现。如果是这样,请向 WPML 技术支持报告。即使您看到类似的问题帖子,也请发起您自己的帖子。我们需要访问您的网站,因此最好单独处理每个网站。

当然,我们将非常高兴听到您关于性能的总体反馈(报告性能提升同样很有帮助 🙂)。请在此处留下您的评论,我们会给您回复。

觉得有用吗?分享这篇文章: