phpexcelにビッグデータをインポートする際のメモリオーバーフローの解決策は何ですか?

王林
リリース: 2023-04-07 21:12:01
オリジナル
4346 人が閲覧しました

phpexcelにビッグデータをインポートする際のメモリオーバーフローの解決策は何ですか?

PHPExcel バージョン: 1.7.6

特別な設定を行わなくても、phpExcel は読み取ったセル情報をメモリに保存します。さまざまなキャッシュ方法を設定できます。 PHPExcel_Settings::setCacheStorageMethod() を通じて、メモリ消費量を削減するという目的を達成しました。

推奨されるビデオ チュートリアル: php 入門チュートリアル

解決策:

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();
ログイン後にコピー

推奨関連記事チュートリアル: php チュートリアル#

以上がphpexcelにビッグデータをインポートする際のメモリオーバーフローの解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート