Luke,
Just to be sure: how are you selecting the backend?
If you use the "matplotlib.use('Agg')" method, this must appear *before*
importing pylab for the first time; it is something of a "gotcha" that
if it appears after pylab has been imported it doesn't give you any clue
that it is ineffective.
Eric
Luke Robison wrote:
> I *am* able to see the same leak in 0.90.1 using Agg, Pdg, Ps, and
> Svg with the same memory amount being leaked each time, so its
> probably in matplotlib code, although I do not have the SVN sources to
> check it there to see if it has been fixed there. I was originally
> using the wxAgg backend, but during the batch job really all i needed
> was the actual histogram numbers, so I looked through the code and
> found matplotlib.mlab.hist which is all I really need, and doesn't
> leak ;-).
>
> Thanks for the help,
> Luke Robison
>
>
> On 8/9/07, Michael Droettboom <[EMAIL PROTECTED]> wrote:
>> There have been a number of memory leaks resolved since the 0.90.1
>> release. However, there are still known memory leaks in all of the GUI
>> backends, some of which are unfortunately just beyond easy reach of
>> matplotlib. If this is an automated process and you only care about the
>> file output, you could try using the "Agg", "Pdf", "Ps" or "Svg"
>> backends, e.g.:
>>
>> import matplotlib
>> matplotlib.use("Agg")
>>
>> I tried your script with both 0.90.1 and the latest svn, and I could
>> reproduce your leak with the TkAgg backend, but not with the Agg backend.
>>
>> If you need a GUI, you may want to try using the latest svn version if
>> you can. The leaks still exist there, but they are much smaller.
>>
>> BTW -- you can get the version of matplotlib with:
>>
>> >>> import matplotlib
>> >>> matplotlib.__version__
>> '0.90.1'
>>
>> Cheers,
>> Mike
>>
>>
>> Luke Robison wrote:
>>> I'm writing a program that processes ~ 25,000 jobs and each iteration
>>> draws a histogram and writes out some of the output. I let it run all
>>> night and when I came back, python was filling up all my memory
>>> (2Gigs) and was thrashing on and off of swap. I narrowed the problem
>>> down to my calling of the hist() function, and was able to reproduce
>>> it in the following code I copied from the mpl website.
>>>
>>> Am I not properly closing the figure somehow?
>>> Has this issue already been addressed?
>>>
>>> I recently installed version 0.90.1 of matplotlib, although I don't
>>> see any easy way to verify that version number from within python.
>>>
>>> -Luke Robison
>>>
>>>
>>> Code:
>>> -------------------
>>> import os,time,sys
>>> from pylab import *
>>>
>>> def report_memory(i):
>>> pid = os.getpid()
>>> a2 = os.popen('ps -p %d -o rss,sz' % pid).readlines()
>>> print i, ' ', a2[1],
>>> return int(a2[1].split()[1])
>>>
>>> # take a memory snapshot on indStart and compare it with indEnd
>>> indStart, indEnd = 100, 150
>>> for i in range(indStart,indEnd):
>>> ind = arange(100)
>>> xx = rand(len(ind))
>>>
>>> figure(1)
>>> hist(xx)
>>> close(1)
>>>
>>> # wait a few cycles for memory usage to stabilize
>>> if i==indStart: start = val
>>> if i>indStart:
>>> end = val
>>> print 'Average memory consumed per loop: %1.4fk bytes' % \
>>> ((end-start)/float(indEnd-indStart))
>>>
>>> -----------------
>>>
>>> Output:
>>>
>>>
>>> python memtest.py
>>>
>>> Average memory consumed per loop: 0.0000k bytes
>>> 102 39808 21991
>>> Average memory consumed per loop: 0.0000k bytes
>>> 103 39828 21991
>>> Average memory consumed per loop: 0.0000k bytes
>>> 104 39852 22024
>>> Average memory consumed per loop: 0.6600k bytes
>>> 105 39876 22024
>>> Average memory consumed per loop: 0.6600k bytes
>>> 106 39908 22024
>>> Average memory consumed per loop: 0.6600k bytes
>>> 107 39932 22024
>>> Average memory consumed per loop: 0.6600k bytes
>>> 108 39960 22024
>>> Average memory consumed per loop: 0.6600k bytes
>>> 109 39980 22057
>>> Average memory consumed per loop: 1.3200k bytes
>>> 110 40008 22057
>>> Average memory consumed per loop: 1.3200k bytes
>>> 111 40032 22057
>>> Average memory consumed per loop: 1.3200k bytes
>>> 112 40056 22057
>>> Average memory consumed per loop: 1.3200k bytes
>>> 113 40084 22057
>>> Average memory consumed per loop: 1.3200k bytes
>>> 114 40104 22090
>>> Average memory consumed per loop: 1.9800k bytes
>>> 115 40132 22090
>>> Average memory consumed per loop: 1.9800k bytes
>>> 116 40156 22090
>>> Average memory consumed per loop: 1.9800k bytes
>>> 117 40180 22090
>>> Average memory consumed per loop: 1.9800k bytes
>>> 118 40208 22090
>>> Average memory consumed per loop: 1.9800k bytes
>>> 119 40232 22123
>>> Average memory consumed per loop: 2.6400k bytes
>>> 120 40256 22123
>>> Average memory consumed per loop: 2.6400k bytes
>>> 121 40280 22123
>>> Average memory consumed per loop: 2.6400k bytes
>>> 122 40304 22123
>>> Average memory consumed per loop: 2.6400k bytes
>>> 123 40328 22123
>>> Average memory consumed per loop: 2.6400k bytes
>>> 124 40356 22123
>>> Average memory consumed per loop: 2.6400k bytes
>>> 125 40380 22156
>>> Average memory consumed per loop: 3.3000k bytes
>>> 126 40404 22156
>>> Average memory consumed per loop: 3.3000k bytes
>>> 127 40428 22156
>>> Average memory consumed per loop: 3.3000k bytes
>>> 128 40452 22156
>>> Average memory consumed per loop: 3.3000k bytes
>>> 129 40476 22156
>>> Average memory consumed per loop: 3.3000k bytes
>>> 130 40500 22189
>>> Average memory consumed per loop: 3.9600k bytes
>>> 131 40528 22189
>>> Average memory consumed per loop: 3.9600k bytes
>>> 132 40548 22189
>>> Average memory consumed per loop: 3.9600k bytes
>>> 133 40576 22189
>>> Average memory consumed per loop: 3.9600k bytes
>>> 134 40596 22189
>>> Average memory consumed per loop: 3.9600k bytes
>>> 135 40624 22222
>>> Average memory consumed per loop: 4.6200k bytes
>>> 136 40652 22222
>>> Average memory consumed per loop: 4.6200k bytes
>>> 137 40676 22222
>>> Average memory consumed per loop: 4.6200k bytes
>>> 138 40700 22222
>>> Average memory consumed per loop: 4.6200k bytes
>>> 139 40724 22222
>>> Average memory consumed per loop: 4.6200k bytes
>>> 140 40744 22222
>>> Average memory consumed per loop: 4.6200k bytes
>>> 141 40768 22255
>>> Average memory consumed per loop: 5.2800k bytes
>>> 142 40800 22255
>>> Average memory consumed per loop: 5.2800k bytes
>>> 143 40824 22255
>>> Average memory consumed per loop: 5.2800k bytes
>>> 144 40848 22255
>>> Average memory consumed per loop: 5.2800k bytes
>>> 145 40872 22255
>>> Average memory consumed per loop: 5.2800k bytes
>>> 146 40896 22288
>>> Average memory consumed per loop: 5.9400k bytes
>>> 147 40916 22288
>>> Average memory consumed per loop: 5.9400k bytes
>>> 148 40940 22288
>>> Average memory consumed per loop: 5.9400k bytes
>>> 149 40972 22288
>>> Average memory consumed per loop: 5.9400k bytes
>>>
>>>
>>> as you can see, the memory consumption is increasing each loop, and
>>> furthermore, and an increasing rate :-(
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by: Splunk Inc.
>>> Still grepping through log files to find problems? Stop.
>>> Now Search log events and configuration files using AJAX and a browser.
>>> Download your FREE copy of Splunk now >> http://get.splunk.com/
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems? Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users