aucor / dynamic-mo-loader
支持对象缓存,优化WordPress的文本域加载
This package is not auto-updated.
Last update: 2024-09-14 18:58:28 UTC
README
将WordPress网站语言更改为非英文会减慢页面生成时间。这主要是因为文本域加载缓慢且效率低下。本插件基于Björn Ahrens的优秀工作,旨在通过只加载页面中使用的文本域并缓存它们来解决这个问题。
PO和MO文件设计用于与PHP Gettext扩展一起使用。但由于它是一个扩展,不是所有主机平台默认安装。为了克服这一障碍,WordPress完全重新实现了整个MO文件解析,完全忽略了使用本地gettext的可能性。WordPress的实现有点慢。
本插件有另一种MO解析实现,比默认实现更快。插件还只加载生成当前页面所需的文本域,而不是默认加载所有可用的文本域。由于前端页面通常只使用少数文本域的字符串,这导致前端性能大幅提升。
为了进一步提高性能,插件还将加载的文本域缓存到对象缓存中。为了获得最佳性能,您需要一个快速的对象缓存后端,如Redis、Memcached或APC(u)。
数字
以下实验是在一个不错的LEMP服务器上进行的,使用Nginx、MariaDB、php-fpm和Redis。服务器具有SSD。这是实际的页面生成时间,而不是服务器响应时间。
默认WordPress安装,php5: 0个活跃插件,Twentysixteen带默认小工具等。
en fi fi, cached
front page 26ms 37ms 29ms
post-new.php 47ms 81ms 61ms
实际的WordPress安装,php5: 15个活跃插件,Twentysixteen带默认小工具等。
en fi fi, cached
front page 95ms 165ms 101ms
post-new.php 208ms 330ms 295ms
默认WordPress安装,php7: 0个活跃插件,Twentysixteen带默认小工具等。
en fi fi, cached
front page 12ms 18ms 14ms
post-new.php 27ms 43ms 37ms
实际的WordPress安装,php7: 15个活跃插件,Twentysixteen带默认小工具等。
en fi fi, cached
front page 54ms 62ms 55ms
post-new.php 113ms 127ms 116ms
使用Xdebug进行验证
以下截图展示了如何跳过内置的WordPress翻译函数,并使用优化的动态加载类,从而将加载时间提高近一倍。
包含在WordPress核心中
计划在WordPress核心中实现本地gettext。如果那样,这个插件就会变得过时。然而,问题编号#17268已经开放了6年,可能不会很快实现。
许可证
GPLv2或更高版本