IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PHPExcel] Out of memory


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut [PHPExcel] Out of memory
    Bonjour à tous,

    Je suis confronté à ce problème sur PHPExcel depuis quelques temps.

    Je plante le décor :
    Plateforme : Iseries (AS400 quoi)
    Base de donnée DB2
    Php par Zend version 5.3
    memory limit du php.ini mis à 10Go (pour le reste j'en parle meme pas...)

    Je soumet un script php pas mon scheduler qui génère mon fichier xls que je transmet ensuite par mail.

    A la fin de mon script, j'ai le fameux message "Out of memory (allocated 258998272) (tried to allocate 35 bytes)". Que je vois dans un fichier spoule généré par mon scheduler.

    L'AS/400 ayant pas mal de ressources j'ai mis dans le fichier php.ini à plus de 10Gb, bref j'ai augmenter les limites ressources de façon considérable.

    Le problème persiste et mon fichier excel ne se génère pas. Test sur un evironnement plus petit ça marche très bien, mais s'il ne faut pas dépasser 2mb pour un document Excel, PHPExcel n'a pas d'intérêt.

    J'ai reluqué pas mal sur le web sans vraiment trouver de solution.

    C'est pour ça que je fais appel à ceux qui peuvent et veulent me répondre ici.

    Merci d'avance en tout cas.

    Jean-Marc

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Plutot que de positionner memory_limit à 10Gb essai plutot de le mettre à -1.
    Ca fera sauter la limite.
    Par contre soit sur que ton script ne tombe pas dans une boucle infinie ou un truc du genre histoire de pas crasher le serveur

    Une fois le serveur redémarré vérifie la mémoire consommée par ton script via memory_get_peak_usage tu pourras alors adapter plus finement ton memory_limit (surtout ne pas le laisser à -1 )
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il y a beaucoup de discussion sur le sujet sur
    http://phpexcel.codeplex.com
    avec plus ou moins de solutions.

    Dans mon cas, j'ai abandonné, il m'était impossible d'ouvrir des fichiers de plusieurs mégas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Citation Envoyé par grunk Voir le message
    Plutot que de positionner memory_limit à 10Gb essai plutot de le mettre à -1.
    Ca fera sauter la limite.
    Par contre soit sur que ton script ne tombe pas dans une boucle infinie ou un truc du genre histoire de pas crasher le serveur
    ...
    Merci, j'avais pas songé à mettre -1....
    Quoiqu'il en soit, rien a faire toujours même message (après stop/start d'apache et zendsvr (php)).

    Je sais plus trop quoi faire.... Dommage, j'aime bien phpexcel.

    Merci encore.

    Jean-Marc

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Citation Envoyé par JeuMeu Voir le message
    Merci, j'avais pas songé à mettre -1....
    Quoiqu'il en soit, rien a faire toujours même message (après stop/start d'apache et zendsvr (php)).
    ...
    Bon ben laissez tomber.... trouvé.
    Je pense que le fait de vous demander m'a aider inconsciemment... merci en tout cas.

    La solution était d'ajouter ces lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
    	$cacheSettings = array( ' memoryCacheSize ' => '1024MB');
    	PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
    avant la déclaration de mon fichier excel ($toto = new PHPExcel

    Ça a suffit. J'ai pris large semble-t-il avec 1024Mb mais bon, je peux le faire.

    A bientôt pour de nouvelles aventures...

    JeuMeu

Discussions similaires

  1. [PHPExcel] PHP Fatal error: Out of memory
    Par bdptakix dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/09/2012, 10h20
  2. [PHP Excel] Out of memory
    Par MistyMan dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/10/2009, 22h38
  3. [pb mémoire] out of memory d'eclipse
    Par Casp dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 12/05/2005, 16h39
  4. Out of memory
    Par shurato dans le forum ANT
    Réponses: 1
    Dernier message: 10/11/2004, 16h19
  5. [JBuilder 8] Out of memory problem ...
    Par keros dans le forum JBuilder
    Réponses: 2
    Dernier message: 08/09/2003, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo