关于PHPExcel类占用内存问题 最近在帮一家公司做后台excel导出功能,使用的工具类是phpexcel,因为这个类功能比较强大、全面。 但是遇到【本文来自鸿网互联 (http://www.68idc.cn)】下面一个问题: 当导出数据量达到一定数量级的时候,比如说1000条,服务器出
关于PHPExcel类占用内存问题
最近在帮一家公司做后台excel导出功能,使用的工具类是phpexcel,因为这个类功能比较强大、全面。
但是遇到【本文来自鸿网互联 (http://www.68idc.cn)】下面一个问题:
当导出数据量达到一定数量级的时候,比如说1000条,服务器出现卡顿、白屏现象,若再增大导出数量,则出现了502错误网关的提示。
经过百度、一些国内论坛的排查,
得出以下几个措施:
1.设置PHP缓存
<span style="color: #008000;">//设置缓存方法 </span>PHPExcel_Settings::setCacheStorageMethod();
2.设置最大执行时间
<span style="color: #008000;">//</span><span style="color: #008000;">设置最大执行时间</span> <span style="color: #008080;">set_time_limit</span>(0);
但是经过调试,都不起作用,仍然报了502错误。
最后,经过查看内存信息,我把问题根源追索转向了内存,于是做了如下设置:
<span style="color: #008000;">//</span><span style="color: #008000;">设置内存限制</span> <span style="color: #008080;">ini_set</span>('memory_limit', '256M');
接下来是激动的结果,excel成功导出了!
至此,问题已解决。
phpexcel确是一个功能强大的类,但是在性能优化方面却有很大的提升空间,希望不久的将来可以推出一个轻量级的excel使用类 ^_^