【问题标题】:Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) [duplicate]致命错误:允许的内存大小为 134217728 字节已用尽(尝试分配 71 字节)[重复]
【发布时间】:2011-04-10 02:33:33
【问题描述】:

可能重复:
Allowed memory size of 33554432 bytes exhausted (tried to allocate 43148176 bytes) in php

嗨,

在我的php页面,我得到如下错误,

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) 

我尝试使用 ini_set('memory_limit', '128M'); 设置内存限制

但我还是得到了错误。

任何帮助将不胜感激。

【问题讨论】:

  • 如果没有真正看到实际代码,就不可能解决这个难题。您页面中的某些内容正在占用所有内存,直到最终达到限制,然后您会收到错误。
  • SO 员工必须考虑基于关键字的自动关闭问题。 “允许的内存大小”就是这样的关键字之一
  • 邮政编码或尝试删除所有“永远循环”的代码。这可能会有所帮助。
  • 在 .htaccess 中尝试 'php_value memory_limit '。 ini_set 并不总是有效。

标签: php memory


【解决方案1】:

128 兆字节是 134,217,728 字节。你已经用完了那段内存。您要么需要设置限制更高(如果可以的话;我不知道 PHP 是否允许这样做)或者只是在代码中使用更少的内存。

您是否希望您的页面使用大量内存?如果是这样,也许提高限制(或将其设置为 -1,这在允许无限内存使用方面有点危险)是正确的做法。如果没有,请查看您的代码以查找可能有效泄漏内存的地方。您可能想尝试用“虚拟”块替换页面的某些部分,一次一个,直到找到有问题的部分。

【讨论】:

  • PHP 通常会准确地在代码中分配失败的地方吐出。 OP 只是没有在他们的代码中包含该部分。只是指出这一点。
  • @Qix:如果OP有泄漏,分配失败的地方可能与泄漏位置完全无关。
  • 不错,但这是一个很好的起点。
猜你喜欢
  • 2012-09-26
  • 2014-03-20
  • 2011-09-27
  • 2015-03-08
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多