danmcle...@yahoo.com 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

Reply via email to