PHP之内存溢出 Allowed memory size

1,394 阅读1分钟

PHP之内存溢出 Allowed memory size

一、是什么

代码报错 Allowed memory size

这时就是出现内存溢出的问题了。

二、为什么

1、读取了过大的文件到内存中,目前phpstudy的内存为128m

2、死循环,导致内存溢出

3、sql结果集过大

三、怎么办

针对上述三个为什么,做出相应的解决方案

1、下载大文件时,使用 循环读取字节流的方式进行下载文件。

详情请移步PHP 大文件下载

2、如果真的有死循环,那就解决代码。

若是正常逻辑数据过大,则应及时处理无用的变量和对象

摧毁变量:unset(变量) 摧毁对象 :__destruct()

unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间。(PHP内核的gc垃圾回收机制决定)

有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存

3、查询数据库时,避免直接 select(*)