Maison > Article > développement back-end > Quelles sont les solutions au débordement de mémoire lors de l’importation de big data dans phpexcel ?
Version PHPExcel : 1.7.6+
Sans paramètres particuliers, phpExcel enregistrera les informations de la cellule lue dans la mémoire, nous pouvons définir différents méthodes de mise en cache via PHPExcel_Settings::setCacheStorageMethod()
pour atteindre l'objectif de réduire la consommation de mémoire !
Tutoriels vidéo recommandés : Tutoriel d'introduction à PHP
Solution :
1. Sérialiser les données de la cellule et les enregistrer en mémoire Medium
PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized;
2. Sérialisez les cellules puis compressez-les avec Gzip, puis enregistrez-les en mémoire
PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
3. peut être plus lent
PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
4. Enregistrer dans php://temp
PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
5. Enregistrer dans memcache Dans
PHPExcel_CachedObjectStorageFactory::cache_to_memcache;
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache; $cacheSettings = array( 'memcacheServer' => 'localhost', 'memcachePort' => 11211, 'cacheTime' => 600 ); PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);notez qu'il est ajouté devant
, comme suit : 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();Tutoriels d'articles associés recommandés :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!