php fatal error-Allowed memory size

问题:PHP Fatal error: Allowed memory size of 805306368 bytes exhausted (tried to allocate 128107105 bytes)

对于上面这个错误,网上大部分给的解决方法是修改的配置memory_limit值:

  1. 直接修改php.ini的值

    例如:设置memory_limit = 256M,把单进程php的最大使用内存设置为256M,如果单线程内程序使用的内存大于这个值,就会出现上面那个错.我们可以把这个值调大,就可以解决这个问题.

  2. 在程序中修改

    这种方式通过使用php的ini_set方法进行设置.

    例如:@ini_set(‘memory_limit’, ‘256M’); 可以和第一种方法达到相同的结果.但是这种只对运行时起作用,程序执行完成这个设置立刻失效.所以当我们不想修改php的配置就可以直接在入口函数如index.php使用这个设置到达一样的效果.

这种处理方法,确实可以解决这个的问题,而且也非常简单和快捷,但是很明显这种做法没有考虑到物理内存的大小限制.对于这种问题我们首先还是要分析自己的代码,找出代码中消耗内存的地方,进行修改.

<?
$ci = curl_init();

//url是一个比较大的文件
curl_setopt( $ci, CURLOPT_URL, $url);

$curl_res = curl_exec($ci);

//这行日志返回上面的错误,在日志输出时候,对$curl_res进行截取.减少日志输出所占的内存
log_message("reponse file content:->".var_export($curl_res, true));

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值