内存不足,但允许要高得多


Running out of memory, but allowed is so much higher

得到以下错误,我理解并且以前见过。但有一件事似乎很奇怪,它试图分配一个低于允许内存大小的量。这看起来不是很奇怪吗?

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 7680 bytes) in XXX on line 93

这可能是内存管理的某种错误配置吗?我使用的是云服务器。

"尝试分配7680字节"不是指脚本分配的内存总量,而是指它超过限制的最后一部分。

假设您的脚本已经分配了33550000 b,并试图再分配7680 b。总数超过了内存限制,这就是出现错误的原因。

也许内存限制设置得比您认为的要小?

您可以使用它来显示当前限制

echo ini_get('memory_limit');

或者增加

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

当然,您可以使用看到整个php环境

echo phpinfo();