WordPress如何修改内存限制从而提升网站性能

张子凡 WordPress优化 2022-12-03 21:07:58 阅读(...) 评论(2)

最近子凡我在重写我们自用的一个 WordPress 网站地图插件,除了能够生成基础的 XML 网站地图,还能够针对性的生成用于第三方数据接口的数据对接,但是随着网站数据的增多,对于 WordPress 拥有上万数据量的时候,一次性调用和处理大数据的时候就会出现超时和内存溢出、502 错误等,那么为了充分利用服务器资源和更好的发挥 WordPress 性能,我可以通过修改 WordPress 内存限制来提升 WordPress 性能。

WordPress 内存限制 WP_Memory_Limit

WordPress 内存科普

首先需要给大家科普一下的就是,WordPress 团队在设计和开发 WordPress 程序时根据正常需求使用(WordPress 使用内存约为 16 MB)程序来说,在一定程度上限制了 WordPress 内存使用,WP_MEMORY_LIMIT 单站点是 40MB,多站点是 64MB 的默认个设置,这样设置的一个好处就是能够保证 WordPress 在最低环境下的正常运行,有效的防止 PHP 无限使用内存对服务器造成性能影响。

WP_MEMORY_LIMIT 是 WordPress Memory Limit 的值,通常指前端内存,WP_MAX_MEMORY_LIMIT 是 PHP Memory Limit 的值,通常指后端内存,WP_MAX_MEMORY_LIMIT 默认内存限制为 256 MB。

为什么要更改 WP_MEMORY_LIMIT 值?

使其达到 PHP 标准。如果主机有某种限制、错误配置、不正确的值或不允许更改它,则使用较小的值,即 40 MB,这通常会产生内存错误,此时应使用 PHP 默认值,通常是在新安装中可以接受。

WP_MEMORY_LIMIT 值可以大于 PHP 值吗?

理论上是可以的,因为 PHP 限制的内存值并非实际服务器内存值,所以如果 WordPress 网站有这样的需求,那么 WP_MEMORY_LIMIT 设置可以超过 PHP 内存限制,但最好不要。建议参考:WP_MEMORY_LIMIT <= WP_MAX_MEMORY_LIMIT <= memory_limit

计算机系统设置的内存限制是有原因的。这个理由应该得到执行;因此,不应超过 PHP 的内存限制,如果需要超过,则应由系统管理员进行更改。

我们可以从 wp-config.php 配置文件中设置定义想要的内存限制。通常设置极高的值是为了隐藏由于糟糕的编程而导致的内存消耗问题。对于 WordPress 核心的内存限制和 WordPress 的正常使用,无论是简单的 WordPress 还是 WordPress 多站点,我们都必须实事求是。大多数 WordPress 站点都安装了使内存峰值更高的插件和主题。

如何修改 WordPress 内存限制?

WordPress 根目录的 wp-config.php 是 WordPress 配置文件,通过编辑该文件,在该文件的有“ABSPATH”字样的上面添加一下配置代码即可:

1
2
3
//WordPress 内存限制
define( 'WP_MEMORY_LIMIT', '128M' ); //前端
define( 'WP_MAX_MEMORY_LIMIT', '256M' ); //后端

其实就只有两行代码,正常请下设置 WP_MEMORY_LIMIT 就可以了,128MB 也是子凡我自己比较大型一些的网站所使用的配置,加上主题和插件的优化这样的内存绝对是足够的,而对于一些需要生成大型文件的时候,可以通过拆分生成后合并的方式做到,也能够很好的节省到服务器内存。

以上只是 WordPress 性能优化的一个小技巧,大家可以作为参考和适当的修改和测试,但并非一味的提高 WordPress 内存限制就能够绝对的提升网站性能,也需要优秀的主题和插件方面的代码优化,以及服务器和数据方面的优化相互配合才能做到最好。今天子凡就给大家分享到这里,欢迎大家留言讨论。

更多关于WordPress优化及疑问可以添加QQ群:255308000

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/wp_memory_limit.html

发表评论

  1. 明月登楼
    1楼
    明月登楼 2022年12月

    这个我以前也有开启,性能表现不明显!

    • 张子凡
      回复
      张子凡 2022年12月
      回复 @明月登楼 :提高内存限制对于大多的WordPress站点几乎没什么提升,默认的情况其实就能够满足,只是有些主题或者查询需要经过处理一些计算的时候,提高内存就非常有必要,不然程序就会非常容易溢出和超时。