解决内存泄漏问题

时间:2012-10-25 14:55:45

标签: php mamp

我已经在PHP.ini中将我的PHP MAMP服务器设置为最大“256M”但突然出现内存错误。有两件事情很奇怪:

  1. 这是一个令人震惊的大量内存供脚本使用。也许我太容易受到惊吓,但脚本应该运行超过256M?我不会这么想的。
  2. 即使我现在将设置更改为“512M”,我仍然会收到内存错误,但仍然会报告在256M范围内/周围耗尽(就好像我的设置被忽略一样)。我确实回收了网络服务器,我认为这足以让新的设置发挥作用。
  3. 我得到的确切信息是:

    [25-Oct-2012 14:27:53] PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 222300161 bytes) in [FILE_PATH]/wp-content/themes/lifegadget-pagelines/sections/lg_content/section.php on line 42
    [25-Oct-2012 14:27:53] PHP Fatal error:  Call to a member function get() on a non-object in [FILE_PATH]/wp-content/object-cache.php on line 52
    

    所以我的问题如下:

    1. 故障排除即可。有没有办法解决内存使用问题?
    2. 比例即可。超过256M的限制是一个明显的问题还是在某些情况下这是合理的?
    3. 新天花板。为什么忽略512M的新上限?并不是说我很高兴让它保持在512M,但我认为它至少会让我恢复运行(我的机器上有16GB,所以有足够的物理内存)。

2 个答案:

答案 0 :(得分:0)

无限循环可能会导致此问题,或者如果您使用5.3之前的PHP版本进行循环引用。请参阅:Garbage collection

答案 1 :(得分:0)

在怀疑内存泄漏类/页面的最开始时注入此函数ini_set('memory_limit', -1);,这是一个让事情正常工作的临时解决方案,但它无法帮助您确定脚本在哪里泄漏内存。< / p>