phpExcel大資料量情況下記憶體溢位解決

2022-04-29 02:09:09 字數 1209 閱讀 2149

版本: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() 前面:如下

$cachemethod = phpexcel_cachedobjectstoragefactory::cache_to_phptemp;

$cachesettings = array('memorycachesize'=>'16mb');

phpexcel_settings::setcachestoragemethod($cachemethod, $cachesettings

);$objphpexcel = new phpexcel();

大資料量下的分頁

大資料量下的分頁 郭紅俊 select from orders where orderid between 10248 and 10253 select from orders where orderid in 10248,10249,10250,10251,10252,10253 order by...

大資料量下的sort

sort在linux命令列下面是乙個非常好用的工具,有人把它當做每個程式設計師都應該知道的8個linux命令之一,最近在處理大資料的時候發現兩點。1.用sort u 而不是sort uniq。sort應該是按照歸併的思想來的,先分成乙個個小檔案,排序後再組合成最後拍好序的檔案。所以,sort u 要...

大資料量演算法

給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中 位圖思想解法 include stdio.h include stdlib.h include memory.h define max num 4294967295 int mai...