Nouvelle erreur fatale

Répondre
Keika
le 07/11/2007 à 12:45
Keika
Salut,

et oui je viens de decouvrir une nouvelle erreur fatale pour PHP.

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 9792 bytes) in /mnt/113/sdb/4/9/Photos/fonctions.php on line 143

bon je comprends bien que ma photo est trop grosse... mais quelle option ai-je ? je suppose que ca dois etre un reglage de php.ini ou pire, de Free... ?
Le PHP --> C'est dur !
LA GLOBULE
le 07/11/2007 à 13:48
LA GLOBULE
Ton script bouffe trop de RAM, essaye de voir pourquoi. Tu dois surement avoir une variable qui "grossit" indéfiniment.
Peut être à cause d'une boucle, je ne sais pas.

Parce que 33 Meg, ça commence à peser pour un simple script de traitement d'image.
Keika
le 08/11/2007 à 05:06
Keika
hmm je ne pense pas que ce soit mon script, parcequ'il passe OK tant que je n'arrive pas a ces photos, et ces photos font 3Mo mini jusqu'a 4.

Donc je pense que le soucis vient de la si avec les autres photos ca passe. Mais c'est quand meme embetant, genre on ne peut pas faire les photos qu'on veut...
Le PHP --> C'est dur !
pierrot
le 08/11/2007 à 10:12
pierrot
Salut à vous,

Dans ton php.ini tu peux essayer de modifier la ligne suivante et tu augmentes la taille de la mémoire:

memory_limit = 16M

Chez moi ça a résolu mon pb.
LA GLOBULE
le 08/11/2007 à 13:33
LA GLOBULE
hmm je ne pense pas que ce soit mon script, parcequ'il passe OK tant que je n'arrive pas a ces photos, et ces photos font 3Mo mini jusqu'a 4.


Cela ne veut rien dire. C'est normal que l'erreur te saute aux yeux que quand elle arrive :) C'est à dire lorsque la limite de mémoire a été atteinte.

Si tu ne boucles pas bêtement et que tu unset bien tes variables à chaque passage (juste celles qui doivent l'être), ton script ne devrait jamais bouffer autant de RAM si tu traites des images de 3 Mo.

Enfin, ce que je veux dire, c'est que une fois que tu as une image traitée et juste avant que tu en traites une autre, si on observe ton script à cet instant précis, il devrait occuper 0 Mo de RAM. Or visiblement ce n'est pas le cas, car plus ton script avance, plus il consomme de la RAM.
Keika
le 09/11/2007 à 04:27
Keika
@ pierrot: J'utilise Free, donc je ne peux rien changer au php.ini...

@ LA GLOBULE: Hmm je vois...
v'la mon script. Si tu vois ce que je pourrais changer parceque la je bloque... J'ai essaye imagedestroy() mais ca ne resout pas le soucis.

Merci
Le PHP --> C'est dur !
Keika
le 05/02/2008 à 13:20
Keika
hop, je remets au gout du jour parceque l'erreur ne disparait pas... Encore bizarre, je n'ai aucune erreur en local (aucune modif faites sur mon serveur, j'utilise Easyphp 2.1b) et sur free ca me balance ca:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 12288 bytes) in line 163

ligne 163 :
$source = imagecreatefromjpeg($fichierSource);

Et pourtant l'image ne fait pas 33Mo, mais 1.5Mo, je ne comprends vraiment pas
Le PHP --> C'est dur !
LupusMic
le 06/02/2008 à 05:52
LupusMic
Modifie le code pour que :

<?php
printf("Mémoire allouée avant php(%d) réelle(%d)\n"
, memory_get_usage()
, memory_get_usage(true)
) ;

//On travail sur la photo numero $photo
creation_mini( $restant[$a] );

printf("Mémoire allouée après php(%d) réelle(%d)\n"
, memory_get_usage()
, memory_get_usage(true)
) ;
?>


Tu pourras peut-être ainsi repérer la fuite mémoire.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre
LoadingChargement en cours