php fatal error-Allowed memory size

来源:互联网 发布:电脑键盘记录软件 编辑:程序博客网 时间:2024/06/16 10:49

问题: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));?>
阅读全文
0 0