php序列化memory_limit问题

时间:2012-03-08 07:54:14

标签: php

我的脚本,序列化一个大型数组在PHP 5.3.8与APC上没有问题。我的服务器崩溃我用APC安装了PHP 5.3.10,我收到了以下错误。


Allowed memory size of 31457280 bytes exhausted (tried to allocate 262263 bytes).

我在php.ini中将memory_limit增加到256M。在我用PhpInfo()验证的相同脚本上,它显示256 MB。但是我得到了相同的错误消息。我禁用了APC,并再次出现相同的错误消息。

3 个答案:

答案 0 :(得分:4)

嗯,很明显31457280字节是30 MB,因此限制没有增加,所以我再次检查。

为了使这个答案更有用,你应该考虑批量序列化这个大型数组,因为一次性占用这么多内存永远不是一个好主意。

此外,您应该查看igbinary,因为PHP存储和序列化数组的本机方式非常很差且内存不足

答案 1 :(得分:0)

调用phpinfo()以检查memory_limit是否实际更改。也许您只是编辑了错误的php.ini文件。

答案 2 :(得分:0)

改变php.ini

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 300M

根据您的需要更改memory_limit。

或详情,请转到http://php.net/memory-limit