php phpexcel导文件爆500(爆内存) && 应对
2025-03-31 08:57:48 阅读次数:12
amp,excel,php,内存
场景
- 开发环境
- 公司使用的php版本的是 5.5.30, 这一点必须吐槽(万年不变的版本 …哭),
升级是不可能升级的,这辈子都不可能
- 因为PHP版本的限制 所以使用的是
PHPOffice/PHPExcel
- centos(7.0) 8核8G
- 前端使用的 fileDownload插件
- 已经设置set_time_limit(0)
- 事件
- 统计数据导出excel 在数据量大的时候 , 会报’500’的错误
分析
- 排除代码的问题
- 代码层面补充了两个之前没有
try catch
去捕捉异常抛出; 但是无果
- debug位置
- log各部分发生的时间,发现数据获取代码是很快的且可以正常运行 所以问题出在生成excel
- 而excel部分可能出什么问题呢?
内存 && CPU
excel 一个cell 占据1k的内存, 我的cell 13502*37 = 500M(将近) 而我的php.ini memory_limit='500M'
现在已经找到问题的所在, 但是还需要确认下
解决
- 哈 我有内存 我豪啊
- ini_set(‘memory_limit’, ‘1000M’);
但是我的在内存泄露了,进程结束内存不释放, 一段调试猛如虎(各种变量 null)binggo, 还是不行
- 哪位大佬解决了, 可以告知一下
- csv文件
- 这个不耗内存 ,还快(辛亏不是给领导看的)
- 怎么可能没有后续呢?
需要给运营的同学教下csv的正确打开方式
- 升级php,换包
- php7.2了解下
PHPOffice/PhpSpreadsheet 这个好很多
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/cominglately/article/details/81513645,作者:cominglately,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:解读缓存问题的技术旅程
下一篇:你应该知道一些其他存储——列式存储