[email protected] wrote:
I am using the array module to instantiate many arrays in my application. It seems like there is a memory leak in there somewhere. Can anyone confim this and let me know what, if anything, I can do about it? I am using Fedora Core 5 Linux:import commands import array import itertools import sys from itertools import repeat print '*** before ***' print commands.getoutput('cat /proc/meminfo').split('\n')[1] for i in range(100): a = array.array('I', repeat(0, int(2E6))) del a print '*** after ***' print commands.getoutput('cat /proc/meminfo').split('\n')[1] Output: *** before *** MemFree: 1459772 kB *** after *** MemFree: 1457688 kB
What happens if you remove the loop? I would not be surprised if Python grabs the memory once, reuses it, and does not let go. That is not a leak. What happens if you put the after inside the loop? Does mem usage steadily increase, and continue if you increase range to 1000, 10000? That would be a leak.
If there actually is a problem, try a later version of Python. -- http://mail.python.org/mailman/listinfo/python-list
