Avatar billede dadane Novice
19. oktober 2004 - 14:59 Der er 8 kommentarer og
1 løsning

Allokeret hukommelse (problemer med resize af billede med GD)

Jeg har et fint lille script som kan resize billeder der uploades.
Det virker fint på min egen PC, - men på webserveren jeg bruger virker det knap så fint.

Med denne stump kode i, - får jeg 2 tjek-prikker

echo "<br/>.";
        $xsmall = ImageCreateTrueColor(200, 100);    // new image
echo ".";
        $small = ImageCreateTrueColor($sizemin[0], $sizemin[1]);    // new image
echo ".";

Men denne får jeg kun én

echo "<br/>.";
        $xsmall = ImageCreateTrueColor(800, 600);    // new image
echo ".";
        $small = ImageCreateTrueColor($sizemin[0], $sizemin[1]);    // new image
echo ".";

Så jeg kan altså godt lave et billede på 200x100 pixels, - men 800x600 er for uoverkommeligt (når mit input billede er 2048x1536). Med mindre inputbilleder virker det fint.

Så alting tyder for mig på at det er et hukommelsesallokeringsproblem.

Men hvad gør jeg så for at løse det???
Avatar billede dadane Novice
19. oktober 2004 - 15:01 #1
Når det virker fint får jeg 3 prikker herfra og scriptet fortsætter og gør hvad det i øvrigt bør gøre.

Det er iøvrigt bemærkelsesværdigt at scriptet bare "dør". Ingen fejl, end ikke i fejlloggen
Avatar billede sukos Juniormester
19. oktober 2004 - 15:03 #2
<?php
ini_set('error_repoting', "E_ALL");

resten af dit script..........................
Avatar billede sukos Juniormester
19. oktober 2004 - 15:03 #3
for sa..........................

<?php
ini_set('error_reporting', "E_ALL");

...........................
Avatar billede dadane Novice
19. oktober 2004 - 15:22 #4
Stadig ingen fejlmeddelse. Scriptet terminere bare
Avatar billede sukos Juniormester
19. oktober 2004 - 15:27 #5
"Det er iøvrigt bemærkelsesværdigt at scriptet bare "dør". Ingen fejl, end ikke i fejlloggen"

er der vel ikke noget at sige til, hvis ikke det er din egen server?

Kan du bruge .htaccess?
Hvis du kan, kan du sætte tiden op som scriptet må bruges på at blive afviklet.
Sætte Mb op for hvor stor data-mængde som er acceptebelt
+ din POST size

Og så viser du jo heller ikke al din kode, så det kan sagtens være der den fejler!
Avatar billede sukos Juniormester
19. oktober 2004 - 15:28 #6
På din egen server, så åben php.ini, og søtg for at den viser ALLE fejlmeddelser! (E_ALL)
Avatar billede dadane Novice
19. oktober 2004 - 15:39 #7
Hej Sukos,

Det er næppe tiden der er et problem. Dels føles det ikke som 30 sekunder og dels er det altid det samme sted (mellem 2 ikke særligt tidskrævende operationer) at scriptet stopper, - selv med forskellige input billeder.

Du har ret i at det kan skyldes andre ting, - men jeg mener nu stadig at det er hukommelsesproblemer der er mest sandsynligt, - især fordi det gør en forskel om jeg beder om at generere et billede på 800x600 pixels eller et på 200x100 pixels.

Jeg kan sagtens bruge .htaccess etc.

Jeg har min egen errorlog - og der bliver da også skrevet til den i ny og næ. Men dette problem forholder loggen sig absolut tavs omkring.
Avatar billede dadane Novice
21. oktober 2004 - 09:59 #8
Hmm. Jeg tog fejl. Faktisk var fejlloggen ikke tavs (men tror der er "forsinkelse" på - og at det var derfor jeg ikke så det).

Her er fejlen:

PHP Fatal error:  Allowed memory size of 16777216 bytes exhausted (tried to allocate 3200 bytes) in /home/dadane/abc

Det er 3 megapixels billeder jeg forsøger at konvertere, - skulle det ikke nok kunne lade sig gøre???
Avatar billede dadane Novice
21. oktober 2004 - 12:04 #9
Det ser ud til at løsningen er at sætte hukommelsesgrænset (memory-limit) op.
Jeg synes ikke det er optimalt og kigger efter en anden løsning.

Sukos: Tak for kommentarer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester