php序列化memory_limit问题


php serialize memory_limit issue

我的脚本,在带有APC的PHP 5.3.8上串行化一个大数组没有问题。我的服务器崩溃了,我安装了带有APC的PHP 5.3.10,我得到了以下错误。


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

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

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

为了让这个答案更有用,您可能应该考虑批量序列化这个大数组,因为一次占用这么多内存从来都不是一个好主意。

此外,您可能应该研究igbinary,因为PHP存储和串行化数组的原生方式非常差,内存不足

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

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