On 03/19/2013 11:47 AM, Bodhi wrote:
I have a python process that does some operations and is supposed to release 
memory after those. The issue is that memory is not released (as seen through 
top). So I do a gc.collect() to see if there is any cycle etc. Immediately 
after doing the collect memory usage drops as expected, but strangely 
gc.collect() returns 0.
This means I cannot find out what the problem is by setting the debug option on 
gc which is what I usually do to figure out issues like this.

Maybe its that my understanding about it is incorrect, but if gc.collect 
returned 0, how come some memory was freed?


To put it simply, top won't in general show you that things are freed. The C libraries for malloc and free will reuse the memory, but not usually release it to the operating system. So it's not usually going to show up in 'top.'

There was a long thread on this quite recently, but I can't seem to find it right now.


--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to