Thank you for tracking this down, Mike.

Darren 

On Wednesday 21 November 2007 11:17:04 am Michael Droettboom wrote:
> It seems that the set of callbacks held by the Axis objects was not
> being cleared by cla().
>
> This has been fixed in SVN r4404, and does seem to correct your example
> script.  I'd appreciate a sanity check by the other developers to make
> sure that change makes sense -- i.e. that the Axis callbacks don't
> really need to stick around beyond the call to cla() for any reason I'm
> not aware of.
>
> An alternative and more general solution would be to change the
> implementation of CallbackRegistry so it uses a WeakValueDictionary, so
> that it won't keep callback targets alive that have otherwise been
> orphaned.  But I can't decide whether that is a good thing or would just
> hide easily fixed errors.
>
> Cheers,
> Mike
>
> Michael Droettboom wrote:
> > I should have some time today to look at this, unless any other
> > developers already know an obvious solution.
> >
> > Cheers,
> > Mike
> >
> > Darren Dale wrote:
> >> I have been working on an application which is basically a dressed up
> >> version of embedding_in_qt4.py. I have two canvases, one is just a plot,
> >> the other an image with a colorbar, both of which should get updated
> >> about once a second as data is acquired. I noticed that for larger
> >> images, it was taking longer to update the canvases as time went on.
> >>
> >> Attached is a script that demonstrates the problem (png's are also
> >> attached for those who dont have PyQt4). At each timeout, I check the
> >> time, generate a new random array, update the image's data, draw it,
> >> collect garbage, and check the time again. The plot in the upper window
> >> shows how long it took to update the image canvas as a function of
> >> iteration number.
> >>
> >> When the image has a colorbar, the time to update the image canvas
> >> increases linearly, about 0.3 ms/iteration. This can really add up:
> >> after 20,000 iterations it takes about 5-6 seconds to update the image
> >> canvas. If I comment out the line that creates the colorbar (line 64),
> >> the time to update the image canvas does not increase.
> >>
> >> A couple other observations and benchmarks from this test:
> >>
> >> * The intercept for the update time with a color bar was 0.17 seconds
> >> * With the colorbar enabled but garbage collection turned off, the
> >> application slowly consumed memory, roughly 12KB/iteration
> >> * Updating an image without a colorbar took 0.1 seconds per iteration,
> >> and did not increase
> >> * Turning off both garbage collection and the colorbar decreased the
> >> update time to 0.043 seconds, with maybe 1.7 KB/iteration increase in
> >> memory usage.
> >>
> >> I don't know if I'll get a chance to dig any further into this in the
> >> next two weeks. For now, I'll just disable the colorbar in my
> >> application.
> >>
> >> Darren
> >>
> >>
> >> ------------------------------------------------------------------------
> >>
> >>
> >> ------------------------------------------------------------------------
> >>
> >>
> >> ------------------------------------------------------------------------
> >>
> >> ------------------------------------------------------------------------
> >>- This SF.net email is sponsored by: Microsoft
> >> Defy all challenges. Microsoft(R) Visual Studio 2005.
> >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> >>
> >>
> >> ------------------------------------------------------------------------
> >>
> >> _______________________________________________
> >> Matplotlib-devel mailing list
> >> Matplotlib-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel



-- 
Darren S. Dale, Ph.D.
[EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to