Maison > développement back-end > tutoriel php > Quelles sont les solutions au débordement de mémoire lors de l'importation de big data dans phpexcel ?

Quelles sont les solutions au débordement de mémoire lors de l'importation de big data dans phpexcel ?

王林
Libérer: 2023-04-07 21:12:01
original
4407 Les gens l'ont consulté

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;
Copier après la connexion

2. Sérialisez les cellules puis compressez-les avec Gzip, puis enregistrez-les en mémoire

PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
Copier après la connexion

3. peut être plus lent

PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
Copier après la connexion

4. Enregistrer dans php://temp

PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
Copier après la connexion

5. Enregistrer dans memcache Dans

PHPExcel_CachedObjectStorageFactory::cache_to_memcache;
Copier après la connexion
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache;  
$cacheSettings = array( 'memcacheServer'  => 'localhost',  
     'memcachePort'    => 11211,  
     'cacheTime'       => 600  
);  
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
Copier après la connexion

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();
Copier après la connexion

Tutoriels d'articles associés recommandés :

tutoriel php

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal