ID: 33487
User updated by: robert dot munteanu at betbrain dot com
Reported By: robert dot munteanu at betbrain dot com
Status: Assigned
Bug Type: Scripting Engine problem
Operating System: *
PHP Version: 6CVS-2005-06-27
Assigned To: dmitry
New Comment:
Problem persists in the latest PHP 5.1 release
Before: 49200
After: 440496
Previous Comments:
------------------------------------------------------------------------
[2005-09-09 18:09:50] robert dot munteanu at betbrain dot com
The problem persists on the latest stable release 5.0.5.
Output:
Before: 38984
After: 430144
Please let me know what the status is on fixing this bug ( or
inneficiency ).
------------------------------------------------------------------------
[2005-06-27 15:29:38] [EMAIL PROTECTED]
This is not really a bug, but unefficient usage of memory by
zend_object_storage. It frees object buckets only on request shutdown.
The test case allocates:
16384 * sizeof(zend_object_store_bucket) = 393216 bytes
------------------------------------------------------------------------
[2005-06-27 12:17:20] [EMAIL PROTECTED]
Dmitry, is there any way to fix this..? (btw. unset() does NOT free all
the memory..but that's, AFAIK, by design)
------------------------------------------------------------------------
[2005-06-27 11:31:02] robert dot munteanu at betbrain dot com
Description:
------------
Whenever you create an object in a method, memory is not released when
the method execution ends, unset() must be called manually.
This becomes a problem when you have long-running scripts, which
perform actions repeatedly which leads to the script running out of
memory.
Reproduce code:
---------------
<?php
class Tester {
public function doNothing() {
$res = array();
for ( $i = 0; $i < 10000; $i++) {
$res[$i] = new StdClass;
}
}
}
$t = new Tester();
echo "Before: ".memory_get_usage()."\n";
$t->doNothing();
echo "After: ".memory_get_usage()."\n";
?>
Expected result:
----------------
Memory usage remains roughly the same.
Actual result:
--------------
Before: 41424
After: 432560
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=33487&edit=1