zoukankan      html  css  js  c++  java
  • phpExcel大数据量情况下内存溢出解决

    版本:1.7.6+

    在不进行特殊设置的情况下,phpExcel将读取的单元格信息保存在内存中,我们可以通过

    PHPExcel_Settings::setCacheStorageMethod()

    来设置不同的缓存方式,已达到降低内存消耗的目的!

    1、将单元格数据序列化后保存在内存中

    PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized; 

    2、将单元格序列化后再进行Gzip压缩,然后保存在内存中

    PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip; 

    3、缓存在临时的磁盘文件中,速度可能会慢一些

    PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;

    4、保存在php://temp

    PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp; 

    5、保存在memcache中

    PHPExcel_CachedObjectStorageFactory::cache_to_memcache

    $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache;  
            $cacheSettings = array( 'memcacheServer'  => 'localhost',  
                            'memcachePort'    => 11211,  
                            'cacheTime'       => 600  
                          );  
            PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

    注意是加在new PHPExcel() 前面:如下

    require_once APPPATH .'third_party/PHPExcel/PHPExcel.php';      
    $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
    $cacheSettings = array('memoryCacheSize'=>'16MB');
    PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
    $objPHPExcel = new PHPExcel();
  • 相关阅读:
    洛谷-P5709 【深基2.习6】Apples Prologue
    右键添加功能
    配置Java环境变量遇到的坑
    mysql安装
    页面置换算法
    程序员画图软件
    Java中传值和传引用
    计算机网络之链路层
    Python开发【第十五篇】模块的导入
    Python开发【第十四篇】装饰器
  • 原文地址:https://www.cnblogs.com/gide/p/4620007.html
Copyright © 2011-2022 走看看