Accueil > Forum > > > > Limitations memoire et imagecreatetruecolor
Limitations memoire et imagecreatetruecolor
vendredi 16 mai 2008 à 16:45:28 |
Limitations memoire et imagecreatetruecolor

LeFauve42
|
Bonjour,
J'ecris un script qui genere des images de taille variable, pouvant etre tres grandes. Lorsque mes images sont trop grandes, imagecreatetruecolor() genere une "Fatal Error" PHP que je n'arrive pas a intercepter .
Est-ce que quelqu'un connaitrait une facon de (au choix): - Recuperer cette erreur - Calculer la taille memoire necessaire pour une image de taille donnee
J'ai essaye la deuxieme approche, mais d'apres ce que j'ai trouve sur google, ca depend beaucoup de la plateforme du serveur.
J'ai augmente la taille memoire disponible sous PHP avec un ini_set('memory_limit', '384M') mais comme l'algorithme qui calcule les largeurs et hauteurs de l'image n'a pas de bornes superieures, ca plantera toujours a un moment ou a un autre...
J'avoue etre un peu a court d'idees... alors si vous en avez, n'hesitez pas ! Toute piste pour resoudre ce probleme est la bienvenue !
Eric
|
|
vendredi 16 mai 2008 à 17:37:51 |
Re : Limitations memoire et imagecreatetruecolor

coucou747
|
de toute facon, ca plantera forcement si tu depasses la limite...
tu peux t'imaginer qu'en gros, une image prend width*height*bpp/8 (bpp= bits par pixels) octets
|
|
vendredi 16 mai 2008 à 18:05:46 |
Re : Limitations memoire et imagecreatetruecolor

LeFauve42
|
"Protégez les arbres, mangez du castor."
|
|
vendredi 16 mai 2008 à 18:12:46 |
Re : Limitations memoire et imagecreatetruecolor
|
vendredi 16 mai 2008 à 18:17:16 |
Re : Limitations memoire et imagecreatetruecolor

LeFauve42
|
Cool, meme le forum s'y met en me bouffant mon poste  (Desole pour le poste precedent, j'ai entre mon texte, mais en validant ca a envoye un post vide...Je recommence donc : ) Merci de ta reponse Coucou747, mais mon but est justement d'empecher que ca plante, par exemple en affichant un message disant que cette fonction n'est pas disponible pour un objet de cette complexite ou bien en le simplifiant jusqu'a ca que ca genere une image qui ne pose pas de probleme. Je pensais comme toi pour la fonction d'approximation mais lorsque je mesure de maniere empirique sur mon serveur de dev (windows), je trouve des valeurs de bpp entre 60 et 88, ce qui me parait beaucoup (a moins que les canneaux soient geres en float???). Et surtout, les differents posts que j'ai croise sur le sujet me laissent penser que ce resultat depend beaucoup de l'OS du serveur (Linux a l'air moins gourmand). J'ai donc utilise cette solution qui marche sur mon sserveur de dev, mais ca me gene un peu d'empecher un utilisateur d'obtenir son image sous pretexte que sur certains OS il n'y aurait pas assez de memoire (ou pire, de planter si l'application tourne sous un OS qui consomme plus...). C'est quand meme un peu bancal que imagecreatetruecolor() fasse une Fatal Error quand elle n'a pas assez de memoire, non ? Pourquoi ne pas simplement renvoyer false ou lever une exception ? Est-ce qu'il n'y a vraiment aucun moyen "propre" de traiter ce cas ? Eric "Protégez les arbres, mangez du castor."
|
|
vendredi 16 mai 2008 à 18:50:24 |
Re : Limitations memoire et imagecreatetruecolor

coucou747
|
Réponse acceptée !
je pense que non...
|
|
vendredi 16 mai 2008 à 19:12:02 |
Re : Limitations memoire et imagecreatetruecolor

malalam
|
Hello,
d'autant plus que ce n'est pas imagecreatetruecolor() qui provoque cette erreur, pas réellement : c'est une erreur générique, dès qu'un traitement php dépasse la limite de mémoire qui lui est allouée. Il est normal que cela génère une erreur fatale : php n'a PLUS de mémoire pour faire quoi que ce soit, donc pas même t'autoriser à intercepter une exception. Maintenant, il est clair que PHP et la gestion de la mémoire, c'est un problème. Mais PHP est un langage de script, pas un langage applicatif, ne l'oublions pas. Quant à l'OS...de tte manière, ton appli web tournera sur l'OS de TON serveur, quel que soit l'utilisateur. Donc si tu trouves une parade sur l'OS de ton serveur, tu n'as pas à t'en faire pour tes utilisateurs. Maintenant, non, je ne pense pas non plus qu'il y ait de solution miracle. A toi de déterminer si la taille d'une image permettra à ton appli web de travailler ou pas, et d'en avertir ton utilisateur. Le but est d'agir AVANT l'erreur fatale, afin d'avoir quelque chose de propre. Mais tu ne pourras pas permettre à tes utilisateurs de faire n'importe quoi : en informatique, ça, ça n'existe pas de toute manière. Essaye de travailler une image pesant 1 To avec Photoshop sur ton dual core ayant 2Go de RAM et un DD de 320 Go...tu peux toujours courir. Il y aura toujours des limitations. Simplement, elles reculeront au fil du temps. Comme tjrs en informatique depuis des 10aines d'années.
|
|
vendredi 16 mai 2008 à 19:32:33 |
Re : Limitations memoire et imagecreatetruecolor

coucou747
|
"Mais PHP est un langage de script, pas un langage applicatif, ne l'oublions pas." quand tu fais ton site en php, t'aimes bien pouvoir faire ton script cron en php aussi...
|
|
vendredi 16 mai 2008 à 19:42:50 |
Re : Limitations memoire et imagecreatetruecolor

malalam
|
ça reste un cron qui lan,ce un script, et non un cron qui lance une application; je ne vois pas où tu veux en venir?
|
|
samedi 17 mai 2008 à 02:40:06 |
Re : Limitations memoire et imagecreatetruecolor

coucou747
|
sur un site, generalement, tu peux consomer beaucoup de memoire, vu que tu la rends tout de suite, c'est pas trop trop grave... sur un script (ou application, sous linux, on ne fait pas trop la difference...), c'est different...
la recommandation GNU indique qu'on doit preferer consommer de la ram que du CPU, mais si tu bouffes 4 go de ram, alors ca commence a "sucer a mort"... je crois qu'on peut meme dire que tu tues ton script...
et pourtant, faire un cron qui liste tout les comptes d'un site pour faire un calcul, et updater une table en faisant 100 000 requetes, ca se fait... alors la question c'est : est-ce-que c'est accessible en php ? ou doit-on faire du perl (pour rester dans la meme gamme de code), ou doit-on pousser jusqu'au code C ou ocaml ?
pour un langage qui se compile en bytecode, je crois qu'on peut dire que php suce clairement... il n'implemente pas le tail rec, il consome trois fois trop de ram (qu'il en consomme plus, vu son ramasse miette, ok, mais de la a en consommer trois fois trop...) et il est franchement lent... autant qu'un interprete pur d'ailleur...
pour les images, vu que c'est GD (donc du C) qui rince, ca reste a peu pres normal. Mais place 2^20 integers en memoire... t'auras beaucoup plus de 4 mo de consommes...
|
|
Cette discussion est classée dans : taille, memoire, genere, limitations, imagecreatetruecolor
Répondre à ce message
Sujets en rapport avec ce message
LA taille d'une base de donnée sql [ par FleX ]
ba en fait je suis sur Free et j'ai une base de donnée que je manipule en php.J'aimerai savoir comment c'est ty qu'on peut bien faire pour obtenir la
Taille d'une chaine de caractere [ par g0belin ]
Comment savoir la Taille d'une chaine de caractere???Je sais que en delphi il faut faire lenght(nom_de_ma_chaine)merci d'avance
Taille d'une table [ par eax ]
salut!qqun saurait-il quelle est la requête à formuler pour connaitre l'espace disque utilisé par une table (structure + données), un peu comme dans p
tableau genere automatiquement avec mysql [ par maivg ]
bonjoursvoila je cherche un script pour genere un tableau de 4 sur 5 avec ma base de donne qui ne contient qu'un seul champs.help helpmerci et A+
Taille max d'un tableau [ par ceeno ]
Voila je cherche a definir la largeur max d'un tableau parceke lorske l'on fait comme cecica n'indike ke la taille min et si le tableau contient une l
Erreur de memoire [ par apz ]
bonjour, en voulant lancer mon site sur mon espace membre lycos j'ai eu l'erreur suivante : Fatal error: Allowed memory size of 8388608 bytes exhauste
taille fenêtre [ par rezzoni0 ]
Est-ce possible d'obtenir la taille de l'écran d'un utilisateur pour pouvoir gérer les différentes résolutions d'écran ?
RichEdit [ par JL26 ]
Bonjour, Est-il possible avec delphi de récupérer une fontes(Nom, taille, couleur) d'une ligne d'un Richedit. Exemple: j ai un RichEdit1 avec 2 lignes
Créer un tableu de taille fixe [ par nikos283 ]
Salut a tous,J'ai un tableau dans lequel j'inclu des pages php a l'aide de la fonction include. Mon probleme étant que la taille du tableau s'ajuste e
taille d'une image [ par glipper ]
Bonjour, je cherche un moyen simple de connaitre la taille d'une image.Je connais la fonction 'getimagesize', qui marche tres bien... mais qui est bcp
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|