Reply to Re: 100KB image that takes up 2mb of memory uses up all 8mb of memory - help!

Your name:

Reply:


Posted by Simon Stewart on 09/26/06 15:28

Phil

yes that's far in pixels smaller than when I had problems
the 8Mb memory_limit you have for PHP is low. Hosting companies often
allocate 16 or 32Mb.
have you tried doing memory_get_usage calls before the problem code? Could
the program or environment be short on memory anyway?

Simon.

"comp.lang.php" <phillip.s.powell@gmail.com> wrote in message
news:1159281310.958733.46560@e3g2000cwe.googlegroups.com...
>
> Simon Stewart wrote:
>> Andy
>>
>> What size is the image you are loading in megaPIXELS?
>> This is often the limiting factor in PHP GD processing, not the original
>> size in Kb or the final size in Kb.
>> When I ran into this I found that PHP stopped abruptly with an error
>> message.
>>
>
> The GIF image is Size: 332 x 287 px = 95284 sq px which is less than
> 0.1 sq mpx
>
> in other words, a tiny image
>
> Phil
>
>> -- Simon
>>
>>
>> "comp.lang.php" <phillip.s.powell@gmail.com> wrote in message
>> news:1159234304.867023.36210@e3g2000cwe.googlegroups.com...
>> >
>> > Andy Hassall wrote:
>> >> On 25 Sep 2006 13:41:02 -0700, "comp.lang.php"
>> >> <phillip.s.powell@gmail.com>
>> >> wrote:
>> >>
>> >> >I have an image that's only 100K in size, and I am working with 8mb
>> >> >of
>> >> >memory. If I do this:
>> >> >
>> >> >[PHP]
>> >> >print_r(ceil((int)ini_get('memory_limit') * 10 *
>> >> >filesize(actual_path("$locationPath/$this->fileName")) / 1000000) .
>> >> >'M'); // PRINTS OUT "2M" for 2mb
>> >> >]/PHP]
>> >>
>> >> Maybe I'm having a dense moment, but what does this value even mean?
>> >> memory_limit times 10 times size of file then divided by a million?
>> >>
>> >> Is the output actually "2M" ? If you have a 100,000 byte file,
>> >> doesn't
>> >> that
>> >> mean your memory_limit is set to "2" ? (presumably "2M", turning into
>> >> "2"
>> >> after
>> >> the cast to int).
>> >>
>> >
>> > Ok I'll make it super simple because I have to explain it so that I
>> > understand. I want to increase memory because "8M" is 8mb which for
>> > some images is not enough memory to run imagecreatefromjpeg, or
>> > imagecreatefromgif or imagecreatefrompng.. so I am going to increase it
>> > from 8MB to something like "130mb" or "130M" if need be for very large
>> > images. It works every time, even if it's an eventual bad idea.
>> >
>> > However, this image is 87KB in size and if I use the same formula to
>> > "increase memory", instead I "decrease memory instead"
>> >
>> >> >The image itself requires far less than the maximum amount of memory
>> >> >required.
>> >> >
>> >> >However, the moment I do this:
>> >> >
>> >> >[PHP]
>> >> > $imagestring =
>> >> >@file_get_contents(actual_path(realpath("$locationPath/" .
>> >> >$this->{$section . '_name'})));
>> >> >[/PHP]
>> >> >
>> >> >It locks up and forces a download of "index.php" (which indicates to
>> >> >me
>> >> >that the memory allotment of 8mb has been used up).
>> >>
>> >> That seems like a guess... what error messages do you get? If you
>> >> can't
>> >> see
>> >> them, change the content-type of the output back to text.
>> >
>> > I see no errors not even in the PHP error log, absolutely nothing is
>> > logged. Tried changing content-type to text/plain, to no avail, still
>> > force-downloads index.php
>> >
>> >>
>> >> >How in the world can a 100KB image that uses only 2mb of 8mb use up
>> >> >8mb
>> >> >of memory on file_get_contents() alone? I'm completely confused!
>> >>
>> >> Why would a 100KB image use 2MB? Where did 8MB come from? I'm also
>> >> confused...
>> >
>> > Sorry but I have no idea whatsoever. Can someone else elaborate?
>> >>
>> >> The usual pitfall is that a 100KB image can easily decompress to
>> >> several
>> >> megabytes, and that GD uses even more memory than you might expect.
>> >>
>> >> --
>> >> Andy Hassall :: andy@andyh.co.uk :: http://www.andyh.co.uk
>> >> http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis
>> >> tool
>> >
>

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация