奇怪的PHP内存行为

时间:2011-12-18 19:27:08

标签: php memory-limit

你好我得到以下奇怪的错误

  

致命错误:内存不足(分配29097984)(试图分配   802454字节)

当我ini_get('memory_limit')时,我得到了256M

在上述错误中,脚本在达到27M ??

时会死亡

任何使用共享主机帐户的建议。

3 个答案:

答案 0 :(得分:0)

您需要“调试”并找到问题的根源。 我首先将你的php内存限制增加到526M

使用它来做到这一点:

ini_set('memory_limit', '512M');

这足以处理任何事情。如果这仍然不起作用,那么我会在某处寻找无限循环。

答案 1 :(得分:0)

如果您在共享主机上,则极有可能您无权更改内存限制。问题很可能是你试图创建一个巨大的阵列;您可能希望尝试使用不同的方法来处理脚本中当前存在的任何循环结构。但是没有代码,没有其他人可以说要帮助。

答案 2 :(得分:0)

即使内存限制为256兆字节,也不意味着您的脚本可以分配那么多。原因是RAM在各种进程之间共享。他们中的一些人可能已经分配了大量内存并且剩下几兆字节的操作系统,因此无论施加的限制如何,您的脚本都无法分配所需的内容。

您应该关注的是尽可能使用最少的RAM。对于像你这样的数据库结果,使用SplFixedArray而不是“常规”PHP数组是个好主意。