关于PHPExcel类占用内存问题
最近在帮一家公司做后台excel导出功能,使用的工具类是phpexcel,因为这个类功能比较强大、全面。
但是遇到下面一个问题:
当导出数据量达到一定数量级的时候,比如说1000条,服务器出现卡顿、白屏现象,若再增大导出数量,则出现了502错误网关的提示。
经过百度、一些国内论坛的排查,
得出以下几个措施:
1.设置PHP缓存
//设置缓存方法
PHPExcel_Settings::setCacheStorageMethod();
2.设置最大执行时间
//设置最大执行时间
set_time_limit(0);
但是经过调试,都不起作用,仍然报了502错误。
最后,经过查看内存信息,我把问题根源追索转向了内存,于是做了如下设置:
//设置内存限制
ini_set('memory_limit', '256M');
接下来是激动的结果,excel成功导出了!
至此,问题已解决。
phpexcel确是一个功能强大的类,但是在性能优化方面却有很大的提升空间,希望不久的将来可以推出一个轻量级的excel使用类 ^_^
相关链接:
http://blog.sina.com.cn/s/blog_4ec7952d0101fcrd.html
关于PHPExcel类占用内存问题的更多相关文章
- php在循环内外实例化类占用内存比较
关于php类的实例化和内存的关系,可以这么说:只要有一个new 关键字就是创建一个对象,创建一个对象就是在内存中分配了一个空间. 代码1: 在循环外实例化类:class ABC{ public $nu ...
- VC++中的类的内存分布(上)
0.序 目前正在学习C++中,对于C++的类及其类的实现原理也挺感兴趣.于是打算通过观察类在内存中的分布更好地理解类的实现.因为其实类的分布是由编译器决定的,而本次试验使用的编译器为VS2015 RC ...
- VC++中的类的内存分布(上)(通过强制转换,观察地址,以及地址里的值来判断)
0.序 目前正在学习C++中,对于C++的类及其类的实现原理也挺感兴趣.于是打算通过观察类在内存中的分布更好地理解类的实现.因为其实类的分布是由编译器决定的,而本次试验使用的编译器为VS2015 RC ...
- 虚函数列表: 取出方法 // 虚函数工作原理和(虚)继承类的内存占用大小计算 32位机器上 sizeof(void *) // 4byte
#include <iostream> using namespace std; class A { public: A(){} virtual void geta(){ cout < ...
- 关于Java占用内存的研究
最近对程序占用内存方面做了一些优化,取得了不错的效果,总结了一些经验简要说一下,相信会对大家写出优质的程序有所帮助下面的论述针对32位系统,对64位系统不适用,后叙 经常你写了一个程序,一测试,功能没 ...
- C++类的内存分配
今天面试被问到一个类的内存问题,有些记不清楚了.用了 C++这么年,实在是不应该. 于是上网查了一些资料,并做了实验,整理如下: 所用测试环境为64位mac air,编译器为XCode 1.最简单 c ...
- 【转载】Unity 优雅地管理资源,减少占用内存,优化游戏
转自:星辰的<Unity3D占用内存太大的解决方法> 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D ...
- Unity3D占用内存太大的解决方法
原地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大 ...
- JAVA对象是如何占用内存的
本文使用的是32位的JVM ,jdk1.6.本文基本是翻译的,加上了一些自己的理解,原文见文章底下链接. 在本文中,我们讨论如何计算或者估计一个JAVA对象占多少内存空间.(注意,使用 C ...
随机推荐
- .net Web应用程序使用IIS调试
1.这种调试方式是区别于使用Visual Studio 自带的调试方式 2.点击[创建虚拟目录],成功
- ssma for oracle
SQL Server Migration Assistant (SSMA) for Oracle lets you quickly convert Oracle database schemas to ...
- MongoDB Query
每条数据格式如下 { "_id" : ObjectId("5383298561aa33a422d8603e"), "day" : " ...
- Loggerly技术架构
https://www.loggly.com/blog/topic/log-management-technology/
- QString类的使用(无所不包,极其方便)
Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...
- Java编程思想重点笔记
首先声明转自https://github.com/lanxuezaipiao/ReadingNotes 无意中发现,写的蛮好转过来学习下. 1. Java中的多态性理解(注意与C++区分) Java中 ...
- 第一讲 一个简单的Qt程序分析
本文概要:通过一个简单的Qt程序来介绍Qt程序编写的基本框架与一些Qt程序中常见的概念 #include <QApplication> #include <QPushButton&g ...
- pomelo
简介 Pomelo 是基于 Node.js 的高性能.分布式游戏服务器框架.它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发.Pomelo 不 ...
- 初试PL/SQL并行编程
-----------------------------Cryking原创------------------------------ -----------------------转载请注明出处, ...
- Android高斯模糊
传送门 github地址:http://developer.android.com/guide/topics/renderscript/compute.html: https://github.com ...