Dreadful DB memory leak

From: Date: Wed, 03 Jul 2002 08:42:55 +0000
Subject: Dreadful DB memory leak
Groups: php.pear.general 
Request: Send a blank email to pear-general+get-1795@lists.php.net to get a copy of this message
$result=$this->db->query($sql,$values); makes use of "prepare" internally and doesn't free the results. I have a script which makes hundreds of thousands of dynamically generated queries and is using upwards of 700M and I'm trying to find out why. The leakiness of ->query() is the first thing I spotted. Perhaps we could maintain to "prepare" caches, one indexed the actual sql template so when the same query does end up being prepared it uses a previous one; but it would be better NOT to keep a cache of statements which are not explicitly prepare'd in the users own code. [a while later] OK, I found out why, I the objects created from the queries were making a copy (instead of reference) to the "db" object, and each copy was bigger than the previous copy because of all this unnesseccary caching. So the main bug is my fault, but I still think pear shouldn't retain multiple cached copies of internally prepared ->query() statements. Sam _____ Samuel Liddicott Support Consultant sam@ananova.com <mailto:sam@ananova.com> Direct Dial: +44 (0)113 367 4523 Fax: +44 (0)113 367 4680 Switchboard: +44 (0)113 367 4600 Ananova Limited Marshall Mill Marshall Street Leeds LS11 9YJ http://www.ananova.com Registered Office: St James Court Great Park Road Almondsbury Park Bradley Stoke Bristol BS32 4QJ Registered in England No.2858918 The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you receive this in error, please contact the sender and delete the material from any computer.

« previous php.pear.general (#1795) next »