Python does not guarantee to return memory to the operating system. 
Whether it does or not depends on the OS, but as a general rule, you should 
expect that it will not.


>>>> for i in range(100000L):
> ...     str=str+"%s"%(i,)


You should never build large strings in that way. It risks being 
horribly, horribly slow on some combinations of OS, Python implementation 
and version.

Instead, you should do this:

items = ["%s" % i for i in range(100000)]
s = ''.join(items)

[] The example is written for illustration purpose. Thanks for pointing out a 
better way of achieving the same result. Yes it seems so that the OS thinks the 
piece allocated to Python should not be taken back unless the process dies. :(

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

Reply via email to