【发布时间】:2014-03-26 01:49:17
【问题描述】:
我有
PHP 致命错误:Allowed memory size of 13241728 bytes exhausted (tried to allocate 24 bytes)
脚本(php)文件为 400kb,输出为 250kb
它打开(并反序列化)几个文件,每个文件都不超过 8mb(总共 32Mb)。
例如:
while (($file = readdir($dir))!=false) {
$inf=file_get_contents($file);
$inf=unserialize($inf);
......
}
我正在使用 fast-cgi。
为什么应该足够的内存却没有足够的内存?
我一直在 php.ini 中将它从 12Mb、16、32、50(同样的错误)设置为 80Mb(哇,它有效)
现在它设置为-1,但我想弄清楚为什么会发生这种情况以及如何解决它(可能取消设置一些变量或其他东西)
【问题讨论】:
-
您好,您能否再粘贴一些代码以便更好地理解
-
不是输出大小,也不是脚本大小。它是您尝试加载的文件的大小,加上开销,再加上未序列化数组的大小
-
@Aman Chhabra 代码大约 400kb 我不知道显示哪个部分
-
@Martijn 你是对的,我想找到在没有数据的时候需要这么多数据的地方
-
你可以在你的循环中添加这个,通过一些计算你可以找到坏人:php.net/manual/en/function.memory-get-usage.php
标签: php memory-management fastcgi