IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    phpExcel大数据量情况下内存溢出解决方法

    陈华发表于 2015-04-18 08:17:17
    love 0

    在不进行特殊设置的情况下,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() 前面:如下

    1 require_once APPPATH .'third_party/PHPExcel/PHPExcel.php';
    2         
    3         $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
    4         $cacheSettings = array('memoryCacheSize'=>'16MB');
    5         PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
    6         
    7         $objPHPExcel = new PHPExcel();

    自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

    本文链接地址: phpExcel大数据量情况下内存溢出解决方法 http://www.chhua.com/web-note5174

    随机笔记

    • apache实现二级域名
    • 30个图片浏览插件收集
    • 算法与排名,程序与架构
    • 再谈EQ均衡器的调试方法
    • 百度针对站群无能为力


沪ICP备19023445号-2号
友情链接