ホームページ  >  記事  >  バックエンド開発  >  phpexcelにビッグデータをインポートする際のメモリオーバーフローの解決策は何ですか?

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

王林
王林オリジナル
2019-12-02 10:22:254340ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。