#36197 [Bgs-Opn]: php does not free script memory when the process alive

2006-02-02 Thread [EMAIL PROTECTED]
 ID:   36197
 User updated by:  [EMAIL PROTECTED]
 Reported By:  [EMAIL PROTECTED]
-Status:   Bogus
+Status:   Open
 Bug Type: Apache related
 Operating System: gentoo 2005.1
 PHP Version:  5.1.2
 New Comment:

Good answer to another question.

No, i don't won't to restrict the memory usage. i want use huge arrays
and i also want the php to free the memory it use on the end of
script.

If that is not possible for some reason, please mark this bug as won't
fix not bogus.


Previous Comments:


[2006-02-02 15:05:29] [EMAIL PROTECTED]

if you want to restrict memory usage use the memory-limit configuration
option when compiling PHP.



[2006-02-02 09:19:20] [EMAIL PROTECTED]

Thank for the replay, but please read my question carefully.
I know that php free the allocated by emalloc memory on the end of
script, my question was why php don't do it for the memory that was
allocated by the *php end user* just like the example i give above.

Yes you can call it feature, and blame linux mm, but the fact that php
do it for the memory used by the extensions developers, give me a hint
that may there is simple way protecting the end user to not kill his
server as well, especially when we talk about linux+apache 1.3.x that
AFAIK it the most common configuration of production php web servers.

(sorry for opening the bug again, if you will change the status of the
bug to 'will not fix', i'll let him die)



[2006-01-31 16:12:08] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

PHP uses an internal memory memory manager, when you allocate memory
using emalloc() it'll be freed at the end of the request, even if you
don't free it explicitly yourself.



[2006-01-30 12:24:33] [EMAIL PROTECTED]

My apology of being nagger but the bellow code, use memory (even
without inner free) that become free right after the script execution
ending. is there a problem to get back the php varibles memory, just
like the efree do?

PHP_FUNCTION(momo_test)
{
char *some_memory;
int a;

some_memory = (char *) emalloc(0x400);
for(a=0;a0x400;a++) some_memory[a]=0;
//efree(some_memory);
}

Can you send me more exact reference how the linux memory allocation
responsible for this spend memory?



[2006-01-29 16:07:05] [EMAIL PROTECTED]

Expected behaviour. Search more information how memory allocation and
freeing works in Linux from the web..and also 'man ps'



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/36197

-- 
Edit this bug report at http://bugs.php.net/?id=36197edit=1


#36197 [Bgs-Opn]: php does not free script memory when the process alive

2006-01-30 Thread [EMAIL PROTECTED]
 ID:   36197
 User updated by:  [EMAIL PROTECTED]
 Reported By:  [EMAIL PROTECTED]
-Status:   Bogus
+Status:   Open
 Bug Type: Apache related
 Operating System: gentoo 2005.1
 PHP Version:  5.1.2
 New Comment:

My apology of being nagger but the bellow code, use memory (even
without inner free) that become free right after the script execution
ending. is there a problem to get back the php varibles memory, just
like the efree do?

PHP_FUNCTION(momo_test)
{
char *some_memory;
int a;

some_memory = (char *) emalloc(0x400);
for(a=0;a0x400;a++) some_memory[a]=0;
//efree(some_memory);
}

Can you send me more exact reference how the linux memory allocation
responsible for this spend memory?


Previous Comments:


[2006-01-29 16:07:05] [EMAIL PROTECTED]

Expected behaviour. Search more information how memory allocation and
freeing works in Linux from the web..and also 'man ps'



[2006-01-29 09:08:18] [EMAIL PROTECTED]

Description:

while playing with big arrays, i see that memory that was used on php
with apache 1.3 sapi doesn't became free till the next time apache use
*the same* process. here how the memory looks like *after* the scripts
have finish to run:

momo@(none) htdocs # ps -A v|grep http
27677 ?Ss 0:00  0  4188  8875  4532  0.8
/www5/bin/httpd
27679 ?S  0:00  0  4188  8875  3072  0.5
/www5/bin/httpd
27680 ?S  0:03  1  4188 31759 26580  5.1
/www5/bin/httpd
27681 ?S  0:00  0  4188 54019 48740  9.4
/www5/bin/httpd
27682 ?S  0:00  0  4188  8875  2532  0.4
/www5/bin/httpd
27683 ?S  0:00  0  4188  8875  2536  0.4
/www5/bin/httpd
27716 ?S  0:00  0  4188  8875  2536  0.4
/www5/bin/httpd
27764 pts/0R+ 0:00  057  1406   436  0.0 grep http


Reproduce code:
---
for($a=0;$a1024*512;$a++) {
$ret[] = 1.1;
}






-- 
Edit this bug report at http://bugs.php.net/?id=36197edit=1