ID: 20844
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Verified
+Status: Bogus
Bug Type: Scripting Engine problem
Operating System: Redhat 7.0
PHP Version: 4.3.0RC2
New Comment:
This is not at all a problem in PHP, but rather a UNIX behavior. While
dumping the real in-use memory by PHP with help of xdebug, you see that
it clearly frees the memory internally:
$ php bug20884.php
35728a
38133048b
50192c
23733064d
modified script:
<?php
xdebug_start_trace();
ini_set('memory_limit','100M');
echo xdebug_memory_usage();
echo "a\n";
$array=array();
for($i=0; $i<=500000; $i++) $array[]="pippoplu";
echo xdebug_memory_usage();
echo "b\n";
sleep(15);
$array=array();
echo xdebug_memory_usage();
echo "c\n";
sleep(15);
for($i=0; $i<=300000; $i++) $array[]="pippoplu";
echo xdebug_memory_usage();
echo "d\n";
sleep(15);
?>
Nog a bug in PHP -> bogus
Previous Comments:
------------------------------------------------------------------------
[2002-12-05 17:06:44] [EMAIL PROTECTED]
I have reproduced the problem also on an ther server (this server uses
redhat 7.2)
------------------------------------------------------------------------
[2002-12-05 17:01:54] [EMAIL PROTECTED]
If I add the line
unset($array);
before
$array=array(); (line: 8)
the result remains the same.
------------------------------------------------------------------------
[2002-12-05 16:55:34] [EMAIL PROTECTED]
If I run this script:
<?
ini_set('memory_limit','100M');
echo "a";
$array=array();
for($i=0; $i<=500000; $i++) $array[]="pippoplu";
echo "b\n";
sleep(15);
$array=array();
echo "c\n";
sleep(15);
for($i=0; $i<=300000; $i++) $array[]="pippoplu";
echo "d\n";
sleep(15);
?>
and I watch the memory usage i see:
after the 'echo "a"': memory usage increases and it reaches 64MB (all
is ok)
after the 'echo "b"': memory usage is 64MB (all is ok)
after the 'echo "c"': memory usage is 62MB (not ok)
after the 'echo "d"': memory usage remains 62MB (not ok)
Why '$array=array();' don't free the memory used by $array?
and why the memory don't increases when between ' echo "c"' and 'echo
"d"'?
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=20844&edit=1