php内存不足的行为


strange Out of memory behavior on php

我得到以下奇怪的错误

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

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

在上面的错误脚本死亡,当它达到27M ??

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

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

用这个来做:

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

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

如果您在共享主机上,那么您很可能没有更改内存限制的权限。问题很可能是你试图创建一个巨大的数组;您可能想尝试一种不同的方法来处理脚本中当前存在的任何循环结构。但是如果没有代码,没有人能说什么来帮助。

即使内存限制是256兆字节,这并不意味着您的脚本将能够分配那么多。原因是RAM在不同的进程之间共享。其中一些可能已经分配了大量的内存,并给操作系统留下了几兆字节的剩余,因此您的脚本无法分配尽可能多的内存,而不管施加的限制。

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