数码资讯
PHPExcel内存泄漏问题的求解方法
使用PHPExcel生成Excel文件,内存消耗。有时,一个循环可以将大量数据分割成多个小Excel文档,以避免内存耗尽。 然而,循环引用的存在(最新版本的1.6.5 PHPExcel似乎仍然要解决这个问题),如果对phpexcel_writer_excel5 PHPExcel和对象实例来完成多个E
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
使用PHPExcel生成Excel文件,内存消耗。有时,一个循环可以将大量数据分割成多个小Excel文档,以避免内存耗尽。
然而,循环引用的存在(最新版本的1.6.5 PHPExcel似乎仍然要解决这个问题),如果对phpexcel_writer_excel5 PHPExcel和对象实例来完成多个Excel文件的生成操作的重复建设过程的一个HTTP请求,所有构造的对象实例不是HTTP请求的结束及时发布之前,导致内存泄漏。
解决方案是在phpexcel_worksheet类添加方法:
复制代码代码如下所示:
公共函数销毁(){
foreach(美元-> _cellcollection美元美元指数=假){
美元-> _cellcollection { $指数} = null;
}
}
在PHPExcel类添加方法:
复制代码代码如下所示:
公共函数销毁(){
foreach(美元-> _worksheetcollection美元美元指数=假){
美元-> _worksheetcollection { $指数} ->破坏();
美元-> _worksheetcollection { $指数} = null;
}
}
然后有一个显式调用::PHPExcel破坏()来解决循环引用的地方,资源回收是必要的。注意,__destruct()方法被调用时,对象被释放,如此循环引用的处理不能在__destruct进行()。
然而,循环引用的存在(最新版本的1.6.5 PHPExcel似乎仍然要解决这个问题),如果对phpexcel_writer_excel5 PHPExcel和对象实例来完成多个Excel文件的生成操作的重复建设过程的一个HTTP请求,所有构造的对象实例不是HTTP请求的结束及时发布之前,导致内存泄漏。
解决方案是在phpexcel_worksheet类添加方法:
复制代码代码如下所示:
公共函数销毁(){
foreach(美元-> _cellcollection美元美元指数=假){
美元-> _cellcollection { $指数} = null;
}
}
在PHPExcel类添加方法:
复制代码代码如下所示:
公共函数销毁(){
foreach(美元-> _worksheetcollection美元美元指数=假){
美元-> _worksheetcollection { $指数} ->破坏();
美元-> _worksheetcollection { $指数} = null;
}
}
然后有一个显式调用::PHPExcel破坏()来解决循环引用的地方,资源回收是必要的。注意,__destruct()方法被调用时,对象被释放,如此循环引用的处理不能在__destruct进行()。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。