On 03/06/2013 07:31 AM, Wong Wah Meng-R32813 wrote:
Apologies as after I have left the group for a while I have forgotten how not 
to post a question on top of another question. Very sorry and appreciate your 
replies.

I tried explicitly calling gc.collect() and didn't manage to see the memory 
footprint reduced. I probably haven't left the process idle long enough to see 
the internal garbage collection takes place but I will leave it idle for more 
than 8 hours and check again. Thanks!


You're top-posting, which makes things very confusing, since your contribution to the message is out of accepted order. Put your remarks after the part you're commenting on, and delete anything following your message, as it clearly didn't need your comments.

Once you've called gc.collect(), there's no point in waiting 8 hours for it to run again. It either triggered the C runtime's logic or it didn't, and running it again won't help unless in the meantime you rearranged the remaining allocated blocks.

Accept the fact that not all freeing of memory blocks can possibly make it through to the OS. If they did, we'd have a minimum object size of at least 4k on the Pentium, and larger on some other processors. We'd also have performance that would crawl. So an external tool can only give you a very approximate size for what's going on in your own code.

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

Reply via email to