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();
  • 相关阅读:
    幸运序列(lucky) 模拟
    無名(noname) 字符串
    香港记者 图论
    Jmeter接口测试系列之参数化方法
    jmeter接口测试-总结
    python字符串
    python变量
    7.15-ROS可视化工具-标记
    6.22-Actionlib
    7.1-Move_base 参数调整
  • 原文地址:https://www.cnblogs.com/gide/p/4620007.html
Copyright © 2011-2022 走看看