[SciPy-user] How to free unused memory by Python

Robert Kern robert.kern at gmail.com
Mon Aug 27 12:49:41 EDT 2007


Robert VERGNES wrote:
> Hello,
> 
> This is not a scipy issue - albeit I do use scipy for my app- and that 
> array() creation seems to crash once I reached my upper Physical Memory
> limit.
> 
> The question is general, How to free unused memory by Python:
> 
> Te following small test demonstrates the issue:
> 
> Before starting the test my UsedPhysicalMemory(PF): 555Mb
> 
>>>>tf=range(0,10000000)        PF: 710Mb ( so 155Mb for my List)
>>>> tf=[0,1,2,3,4,5]        PF: 672Mb (Why? Why the remaining 117Mb is
> not freed?)
>>>> del tf            PF: 672Mb ( Nothing happens)
> 
> So changing the list contents and/or deleting the list changes nothing...
> 
> This is a problem as I have several applications/threads competing for
> memory share.
> 
> So how can I force Python to clean the memory and free the memory that
> is not used?

Pythons previous to 2.5 do not release memory back to the OS even after all of
your objects have been completely decrefed.

C.f. http://evanjones.ca/python-memory-part3.html

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco



More information about the SciPy-User mailing list