1

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

  1. 对于脚本来说,这是一个惊人的高内存量。也许我太容易震惊了,但脚本应该运行超过 256M 吗?我不会这么想的。
  2. 即使我现在将设置更改为“512M”,我仍然会收到内存错误,并且它仍然报告在 256M 范围内/附近耗尽(好像我的设置被忽略了)。我确实回收了我认为足以让新设置发挥作用的网络服务器。

我得到的确切信息是这样的:

[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,所以有足够的物理内存)。
4

2 回答 2

0

无限循环可能会导致这种情况,或者如果您在 PHP 5.3 之前的版本中有循环引用。请参阅:垃圾收集

于 2012-10-27T12:53:30.590 回答
0

在您怀疑内存泄漏的类/页面的最开始注入此函数ini_set('memory_limit', -1);,这是使事情正常工作的临时解决方案,但它不会帮助您知道您的脚本究竟在哪里泄漏内存。

于 2013-01-30T22:44:59.047 回答