On May 7, 3:47 pm, "danmcle...@yahoo.com" <danmcle...@yahoo.com> wrote: > On May 7, 3:31 pm, "danmcle...@yahoo.com" <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 > > I hate to reply to my own thread but I wanted to update it. I tried > the same code using ctypes arrays and see no memory leak: > > import commands > import array > import itertools > import sys > import ctypes > > from itertools import repeat > from ctypes import * > > print '*** before ***' > print commands.getoutput('cat /proc/meminfo').split('\n')[1] > for i in range(100): > a = ARRAY(c_uint, int(2E6)) > del a > print '*** after ***' > print commands.getoutput('cat /proc/meminfo').split('\n')[1] > > *** before *** > MemFree: 1416364 kB > *** after *** > MemFree: 1416364 kB
The above code was not correct. I actually do see a memory leak when using ctypes arrays also. What is going on? import commands import array import itertools import sys import ctypes from itertools import repeat from ctypes import * print '*** before ***' print commands.getoutput('cat /proc/meminfo').split('\n')[1] for i in range(100): a = ARRAY(c_uint, int(2E6))() del a print '*** after ***' print commands.getoutput('cat /proc/meminfo').split('\n')[1] Output *** before *** MemFree: 1564096 kB *** after *** MemFree: 1556884 kB -- http://mail.python.org/mailman/listinfo/python-list