您的位置:首页 > 编程语言 > PHP开发

由数组未初始化引起PHP脚本出现内存不足 PHP Fatal error: Allowed memory size of

2017-10-12 12:22 441 查看
项目中遇到需要统计周粒度数据,随着时间越来越长,请求的数据会越来越多,超过nginx
fastcgi_read_timeout 10

的限制,所以出现504 Gateway Time out,我把数据放到一个中间数据表中,当前端需要请求数据的时候从 中间数据表中获取数据,但是,发现Http状态码变成了500,看了一下日志报错出现

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 336219 bytes)

PHP脚本内存不足,使用

echo memory_get_usage();

看了一下内存使用,超出了php.ini中memory_limit 128M

的限制,所以开始报错,找了好久,最后看了一下中间表的数据,不是很正常,多出来很多重复的数据,原因是

我代码中没有声明数组 $arr
= array();

后面代码中使用$arr [] = array();

一直向数组中添加数据,导致多了很多重复的数据,数据量瞬间增加了很多,这样就造成出现PHP脚本出现内存不足的原因了

所以如果遇到这个问题,很可能是我们程序写的有问题,和同事一起分析,最后找到了原因,想撞墙的感觉!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息