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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Allowed memory size of 134217728 exhausted impossible à outrepasser


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Par défaut Allowed memory size of 134217728 exhausted impossible à outrepasser
    Bonjour,

    J'obtiens lors de l'exécution d'un script assez lourd l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 83363841 bytes) in...
    Je précise que :
    - Dans le php.ini, la limite de mémoire est bien fixée à 512M (mon phpinfo() le confirme)
    - De toute manière, j'ai dans le même répertoire que le script un autre fichier php.ini contenant les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    max_execution_time = 0
    max_input_time = 600
    memory_limit = 512M
    Alors pourquoi cette limitation à 128M ? D'où peut-elle venir ? J'utilise Zend Server mais je ne pense pas qu'il puisse influer sur ça... Si ?


    Toute suggestion sera bienvenue !

  2. #2
    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
    Je dirais que tu as une boucle infinie quelque part et donc que quelque soit la limite de mémoire que tu places, tu deborderas toujours : 128Mo pour un script c'est déjà énorme.

    Il est possible que l'indication d'erreur retranscrive mal les informations dans un cas comme ça, même si je n'ai pas trouvé confirmation de ça.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Par défaut
    Merci pour ta réponse. En l'occurence, mon code ne fait pas grand chose, même si la consommation de mémoire est grosse : j'ouvre un fichier (de 15Mo, d'où la mémoire) qui est un objet sérialisé, et ensuite je fais un print_r de l'objet désérialisé. C'est à l'endroit du print_r que l'erreur se produit.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Par défaut
    Hello,

    Toute suggestion sera bienvenue
    Je pense qu'afficher ( print_r) d'un fichier de plus de 15Mo est une très mauvaise chose. Je ne pense pas que le navigateur le supporte d'ailleurs ou très mal. une page faisant en générale 50-100Ko


    Tu pourrai n'afficher qu'un partie de ce tableau, par exemple les 10 dernière rows.

    edit] Une dernière remarque : pour de tel volume de donnée, pourquoi ne pas utiliser une base de donnée ?

    Crdlt,

  5. #5
    Membre confirmé
    Profil pro
    aaaaa
    Inscrit en
    Novembre 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : aaaaa

    Informations forums :
    Inscription : Novembre 2006
    Messages : 178
    Par défaut
    Bonne suggestion
    D'ailleurs, je crois que c'est encore pire que ce que tu dis : afficher un fichier de 15Mo c'est pas bien, mais en plus un objet désérialisé dont la sérialisation prend 15 Mo, c'est encore pire, mais j'aime bien faire souffrir mon ordi

    J'avoue que j'avais pas pensé à la BD, oui pourquoi pas... Je ne sais pas trop comment je pourrais organiser mes données mais bon...


    Cela dit, ça n'explique pas mon problème de départ, à savoir qu'il considère que la limite de mémoire est à 128M alors que je l'ai fixée à 512M partout.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 11
    Par défaut
    brunoperel,

    Dans le doute, combien de mémoire vive dispose tu sur ta machine( RAM) ?

    Pour ma part j'ai 512, mais sans mal je peu penser que tu a 1Go. Il faut penser que le système d'exploitation en utilise déjà une partie et que l'OS ne permettra pas a un processus ( Apache -> PHP) de prendre plus que disponible. Il y a bien le swap mais l'allocation qui coquille.

Discussions similaires

  1. Allowed memory size of 134217728 bytes exhausted
    Par kate59 dans le forum Langage
    Réponses: 4
    Dernier message: 16/01/2013, 14h48
  2. Réponses: 1
    Dernier message: 08/11/2010, 18h49
  3. Réponses: 3
    Dernier message: 08/12/2009, 14h14
  4. [Librairies] zip.lib.php Fatal error: Allowed memory size of 8388608 bytes exhausted
    Par manaboko dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 22/05/2006, 10h42

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