猿问

Wordpress 中的内存泄漏

我目前正在为 Wordpress 开发插件。最近,当我尝试在本地安装中打开网站页面时,开始遇到一些问题。每当我尝试在新的 Chrome 隐身窗口中打开它时,都会收到 500 错误。从正常的 Chrome 模式中删除 cookie 也会触发该问题。


Apache 日志显示我用尽了最大内存限制。将限制设置为 -1 会导致无限内存负载,因此我必须手动停止 apache 执行。然后我启用了 xdebug 并打开了调试模式。据我所知,xdebug 带有最大嵌套限制,所以这就是我现在得到的错误。调用栈显示存在一个函数调用循环。


这是它的样子:


( ! ) Error: Maximum function nesting level of '256' reached, aborting! in /.../wp-includes/wp-db.php on line 2030

Call Stack

#   Time    Memory  Function    Location

1   0.0008  397344  {main}( )   .../index.php:0

2   0.0010  397632  require( '.../wp-blog-header.php' ) .../index.php:17

3   0.0011  397984  require_once( '.../wp-load.php' )   .../wp-blog-header.php:13

4   0.0044  411632  require_once( '.../wp-config.php' ) .../wp-load.php:37

5   0.0046  413160  require_once( '.../wp-settings.php' )   .../wp-config.php:101

6   0.9406  10171032    do_action( )    .../wp-settings.php:375

7   0.9406  10171408    WP_Hook->do_action( )   .../plugin.php:465

8   0.9406  10171408    WP_Hook->apply_filters( )   .../class-wp-hook.php:310

9   0.9474  10227816    Classic_Editor::init_actions( ) .../class-wp-hook.php:286

10  0.9482  10229208    Classic_Editor::get_settings( ) .../classic-editor.php:42

11  0.9482  10229208    get_option( )   .../classic-editor.php:233

12  0.9484  10229528    W3TC\DbCache_Wpdb->get_row( )   .../option.php:100

13  0.9484  10229528    W3TC\DbCache_Wpdb->query( ) .../wp-db.php:2501

14  0.9484  10229528    W3TC\DbCache_WpdbInjection_QueryCaching->query( )   .../DbCache_Wpdb.php:167

15  0.9486  10229616    W3TC\Cache_File->get( ) .../DbCache_WpdbInjection_QueryCaching.php:143

16  0.9486  10229616    W3TC\Cache_File->get_with_old( )    .../Cache_Base.php:96

17  0.9486  10229616    W3TC\Cache_File->_get_with_old_raw( )   .../Cache_File.php:136

18  0.9486  10230048    W3TC\Cache_File->_get_path( )   .../Cache_File.php:154

重复第 12 到 23 行,直到第 252 行。


我试图将最大嵌套级别设置为 5000,但总是达到限制。


此外,由于日志似乎暗示问题来自 W3 TC 堵塞,我尝试禁用它。问题暂时消失了,我能够以隐身模式访问该站点,但一段时间后又重新出现。使用 W3 TC 清理缓存似乎也可以暂时解决问题。


从这一点来说,我不知道我还能尝试什么。我怎样才能永久解决这个问题?


翻过高山走不出你
浏览 194回答 1
1回答

蝴蝶不菲

问题似乎与 W3 TC 插件有关。完全删除它为我解决了问题。
随时随地看视频慕课网APP
我要回答