发现问题

经常我们在处理数据量比较大的时候会遇到“Fatal error:Allowed memory size of 67108864 bytes exhausted (tried to allocate 76 bytes)......”这种错误,原因是内存溢出了!
来,举一个栗子?:

原因分析

  • 一次性读取10W条数据(单条数据量大)
  • 读取超200M大文件Excel数据内容时
  • 处理超大型日志文件数据
  • ......
    这些操作都是非常吃内存,内存缓冲区超过存放限制大小就会导致内存溢出。

解决方案

  1. 在代码中设置limit_momery大小,如ini_set('limit_momery','512M'),设置限定的内存大小值,“-1”表示不做限制。
  2.  在php.ini配置文件中设置limit_momery = 512M,重启PHP即可。

    其实有些时候是可以避免出现这种错误了,这就需要自己对代码的质量严格把控一下!

建议

给出以下几个方面的建议:

  • 数据量大的做分页处理,一定不要一次性读取所有的数据。
  • 及时释放用完的变量,使用unset函数处理。
  • 开辟合理的存储空间,合理使用。
相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!