PHP之内存溢出 Allowed memory size
一、是什么
代码报错 Allowed memory size
这时就是出现内存溢出的问题了。
二、为什么
1、读取了过大的文件到内存中,目前phpstudy的内存为128m
2、死循环,导致内存溢出
3、sql结果集过大
三、怎么办
针对上述三个为什么,做出相应的解决方案
1、下载大文件时,使用 循环读取字节流的方式进行下载文件。
详情请移步PHP 大文件下载
2、如果真的有死循环,那就解决代码。
若是正常逻辑数据过大,则应及时处理无用的变量和对象
摧毁变量:unset(变量) 摧毁对象 :__destruct()
unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间。(PHP内核的gc垃圾回收机制决定)
有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存
3、查询数据库时,避免直接 select(*)