> 백엔드 개발 > PHP 튜토리얼 > 빅데이터를 phpexcel로 가져올 때 메모리 오버플로에 대한 해결책은 무엇입니까?

빅데이터를 phpexcel로 가져올 때 메모리 오버플로에 대한 해결책은 무엇입니까?

王林
풀어 주다: 2023-04-07 21:12:01
원래의
4370명이 탐색했습니다.

빅데이터를 phpexcel로 가져올 때 메모리 오버플로에 대한 해결책은 무엇입니까?

PHPExcel 버전: 1.7.6+

특별한 설정이 없으면 phpExcel에서 읽은 셀 정보는 다음과 같습니다. 메모리 소비를 줄이는 목적을 달성한 PHPExcel_Settings::setCacheStorageMethod()를 통해 다양한 캐싱 방법을 설정할 수 있습니다! 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()

추천 관련 비디오 튜토리얼: php 입력 튜토리얼

해결 방법:

#🎜🎜##🎜🎜#1. 셀 데이터를 직렬화하고 메모리에 저장합니다. #🎜🎜##🎜🎜#
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();
로그인 후 복사
#🎜🎜##🎜🎜#2. , Gzip 압축을 수행한 다음 메모리에 저장합니다#🎜🎜##🎜🎜#rrreee#🎜🎜##🎜🎜#3. 임시 디스크 파일의 캐싱이 느려질 수 있습니다#🎜🎜## 🎜🎜#rrreee#🎜🎜# #🎜🎜#4. php://temp#🎜🎜##🎜🎜#rrreee#🎜🎜##🎜🎜#5에 저장합니다. #🎜🎜##🎜 🎜#rrreeerrreee#🎜🎜# 다음과 같이 new PHPExcel() 앞에 추가됩니다: #🎜🎜#rrreee#🎜🎜#권장 관련 기사 튜토리얼: #🎜🎜#php tutorial#🎜🎜# #🎜🎜#

위 내용은 빅데이터를 phpexcel로 가져올 때 메모리 오버플로에 대한 해결책은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿