-- till <[email protected]> wrote (on Monday, 22 December 2008, 11:14 AM +0100): > On Mon, Dec 22, 2008 at 10:46 AM, Lossoth <[email protected]> wrote: > > I'm using Zend_Dom to parse some web pages in a loop > > The loop is very long (200000 pages) > > I note that for every cycle the memory used by php grow > > It seems that Zend_Dom don't release the memory used after any loop > > The code is similar to this. > > > > foreach($urlArray as $url) > > { > > $response = getHTM($url);//simple function using fopen, the problem > > isn't here > > $dom = new Zend_Dom_Query($response); > > ... > > //do something with a $dom->query > > > > unset($dom); > > } > > > > The memory limit in my php ini is 1GB > > After 20000 iterations there is an error of out of memory > > > > Somebody could help me?? > > > > Thanks! > > > > Marco > > A rough idea would be to implement __destruct which cleans up the object: > > Marco_Dom_Query extends Zend_Dom_Query > { > public function __destruct() > { > unset($this->_document); > } > } > > Use it just like Zend_Dom_Query, keep unset($dom) in the loop and see > if this triggers __destruct() and really gets rid off the document you > added to the object. You could also check if memory_get_usage() grows > with each loop, or not.
If this *does* work, please put an issue in the tracker, and we'll add this functionality. -- Matthew Weier O'Phinney Software Architect | [email protected] Zend Framework | http://framework.zend.com/
