消耗大量内存后,php脚本挂起

时间:2017-02-24 12:46:17

标签: php memory-management

我在浏览器中运行php脚本。消耗超过600MB字节后,php脚本挂起。 httpd使用100%的cpu。日志文件中不会出现错误。我在php 5.4中使用xampp。为了简化问题,我测试了以下脚本:

<?php
set_time_limit(0);
ini_set('memory_limit', '1800M');
$b="";
for($i=0;$i<630000000;$i++)
{
     $b.='a';
}
echo "completed!";
?>

脚本失败并显示错误: 致命错误:内存不足(分配320077824)(试图分配319815657字节) 我的系统有大约1.5G内存可用。怎么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

  

我的系统有大约1.5G内存可用。

当然,并非所有这些都可供PHP使用。

您需要增加PHP配置中的memory_limit

  

memory_limit 整数
  这将设置允许脚本分配的最大内存量(以字节为单位)。这有助于防止编写糟糕的脚本占用服务器上的所有可用内存。请注意,要没有内存限制,请将此指令设置为-1。