[EMAIL PROTECTED] wrote: > thanks for your reply > > i'll try unset, and see if that helps > also, i know the problem is in that code i posted, because if i comment > out the pel stuff, the memory that is used doesn't accumulate in the same > way > for example, > > with pel code, after doing an image resize, using memory_get_usage() > 3000 KB after first image > 3500 after second image > 4000 > 7000 > 11000 > and so on, > > but without the pel code, it looks more like > 3000 > 3010 > 3005 > 3020 > 3020 > 3010 > 3020 > the memory usage doesn't go up significantly > > i'm pretty sure it has something to do with writing the file three times > in that one function > do you know of a better way to get the exif data, write the jpeg using gd, > then write the exif data back to the jpeg? > > i'm going to experiment with removing one of the file writes, just to see > how it affects memory tonight, but i can't really see how it can be > reduced to one file write > hmmm.... i basically tested it with just opening the original file with pel, then closing it using unset and writing the image using imagejpeg basically $origJpeg->loadFile($fullFilePath); $exif = $origJpeg->getExif(); unset($origJpeg); imagejpeg();
and it still ran out of memory, did a few more images, but was still less than 10 seems like file_get_contents doesn't work nearly as well as one would hope > if worse comes to worse, i may have to save the exif data to db or > something and put it back later, in a different process > > thanks > dave > > On Wed, November 22, 2006 7:44 pm, Martin Geisler wrote: > >> dave <[EMAIL PROTECTED]> writes: >> >> Hi Dave >> >> >> >>> hmmm... doesn't appear to be pel or anything like that seems that my >>> image resources aren't being completely freed or something and the >>> memory usage accumulates, until it crashes >>> >> That's strange. I haven't tried processing multiple large images in a >> single script with a memory limit before, so I haven't seen the bug before. >> >> >> PEL don't know anything about file handles, image resources, or >> similar stuff that would consume resources, so I don't see how it should >> leak memory. >> >> It does have a few static variables in Pel.php which could fill up. >> I'm thinking of Pel::$exceptions which is an array of exceptions which >> have been suppressed when parsing. Try calling Pel::clearExceptions() once >> you are done with each image -- maybe that will help. >> >> >>>> i'm using gd to resize my images, and pel to re-attach the exif data >>>> after gd has finished but i've run into a problem with the memory >>>> limit >>>> >>>> i'm using php 5.2.0 on fedora core 4 pel is updated via svn from trunk >>>> >>>> >> Good! >> >> >> >>>> [...] >>>> >>>> >>>> the offending code is [...] >>>> >>>> $origJpeg->loadFile($fullFilePath); >>>> >>>> >> Good, this uses file_get_contents() to load the file in one big swoop. >> The PHP manuals says that this is "the preferred way to read the >> contents of a file into a string. It will use memory mapping techniques if >> supported by your OS to enhance performance." >> >> Unfortunately file_get_contents() doens't seem to work quite as good >> as promised by the PHP documentation: see SF bug #1210126 where someone >> suggested that PEL should read the data from the files as needed. I >> thought that file_get_contents() would work that way since it memory maps >> the file. >> >> >>>> $exif = $origJpeg->getExif(); >>>> >>>> >>>> [...] >>>> >>>> >>>> $newJpeg = null; >>>> } >>>> $origJpeg = null; >>>> >>>> >> There might be a difference between assigning null to the variables >> and calling unset() on them. >> >> >>>> i am using imagedestroy, that is in another section of the code that >>>> is not visible here >>>> >> Okay good, that would have been my next question :-) >> >> >> -- >> Martin Geisler --- <[EMAIL PROTECTED]> --- http://mgeisler.net >> >> >> Read, write, create Exif data in PHP with PEL: http://pel.sf.net >> Take control of your webserver with PHP Shell: http://phpshell.sf.net >> ------------------------------------------------------------------------- >> Take Surveys. Earn Cash. Influence the Future of IT >> Join SourceForge.net's Techsay panel and you'll get the chance to share >> your opinions on IT & business topics through brief surveys - and earn >> cash >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> _______________________________________________ >> PEL-devel mailing list >> PEL-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/pel-devel >> >> >> > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > PEL-devel mailing list > PEL-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/pel-devel > > -- http://dtracorp.com ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ PEL-devel mailing list PEL-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pel-devel