I'm having a memory leakage using matplotlib 1.0.1 with wx 2.8.11.0, on
windows XP.

To reproduce, I used the sample from here:
http://matplotlib.sourceforge.net/examples/animation/dynamic_image_wxagg2.htmland
deleted most of the significant lines (see below). I only create a
canvas but I don't create any axes, nor plot any data.
The only thing I do is draw() on a timer event. This makes my process grow
about 6Mbyte per minute.

Is this reproduced in other environments? Any ideas on how to resolve this?

Thanks,
Oren


"""
Copyright (C) 2003-2005 Jeremy O'Donoghue and others

License: This work is licensed under the PSF. A copy should be included
with this source code, and is also available at
http://www.python.org/psf/license.html

"""
import sys, time, os, gc

import matplotlib
matplotlib.use('WXAgg')

from matplotlib import rcParams
import numpy as npy

import matplotlib.cm as cm

from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
from matplotlib.backends.backend_wx import NavigationToolbar2Wx

from matplotlib.figure import Figure
from wx import *


TIMER_ID = NewId()

class PlotFigure(Frame):

    def __init__(self):
        Frame.__init__(self, None, -1, "Test embedded wxFigure")

        self.fig = Figure((1,1), 50, facecolor='.95')
        self.canvas = FigureCanvasWxAgg(self, -1, self.fig)
        # Now put all into a sizer
        sizer = wx.BoxSizer(wx.VERTICAL)
        # This way of adding to sizer allows resizing
        sizer.Add(self.canvas, 1, wx.LEFT|wx.TOP|wx.GROW)
        self.SetSizer(sizer)
        self.Fit()

        self._price_ax = self.fig.add_subplot(111)


        wx.EVT_TIMER(self, TIMER_ID, self.onTimer)
        self.t = wx.Timer(self, TIMER_ID)
        self.t.Start(1000)

    def onTimer(self, evt):
        self.canvas.draw()


if __name__ == '__main__':
    app = PySimpleApp()
    frame = PlotFigure()
    # Initialise the timer - wxPython requires this to be connected to
    # the receiving event handler
    t = Timer(frame, TIMER_ID)
    t.Start(100)

    frame.Show()
    app.MainLoop()
------------------------------------------------------------------------------
Forrester Wave Report - Recovery time is now measured in hours and minutes
not days. Key insights are discussed in the 2010 Forrester Wave Report as
part of an in-depth evaluation of disaster recovery service providers.
Forrester found the best-in-class provider in terms of services and vision.
Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to