I take it that it doesn't happen using the GTK3Agg backend? What about the
threading portion? Does it happen if you take the threading out?

Ben Root

On Tue, May 26, 2015 at 8:23 AM, David <dhug...@rapiscansystems.com> wrote:

> Hi, I seem to have a memory leak while generating a 'live' plot display.
> This wasn't the case for GTK2, but the example below is consuming
> ~800k/second (Matplotlib 1.4.3, PyGI aio-3.14.0_rev18, Windows 7 x64,
> python 3.4.3). I have checked the garbage collector but it doesn't show
> anything interesting (no massive incrementing count of uncollected items).
> Anyway, I would be very grateful if somebody could confirm and/or fix this
> (or tell me what I'm doing wrong). Many thanks David Code below:
>
> from gi.repository import Gtk, Gdk, GLib
>
>
> from matplotlib.figure import Figure
> # Tell matplotlib to use a GTK canvas for drawing
> #from matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as 
> FigureCanvas
> from matplotlib.backends.backend_gtk3cairo import FigureCanvasGTK3Cairo as 
> FigureCanvas
>
>
> # Application Class
> class pyMatPlotLibTest(object):
>
>     def update_gui(self):
>         y = [self.index] * 1024
>
>         self.index += 1
>         if self.index > 1024: self.index = 0
>
>         Gdk.threads_enter()
>         self.line.set_ydata(y)
>         self.axes.set_title("%d" % self.index)
>         self.canvas.draw()
>         Gdk.threads_leave()
>
>         return True
>
>     def __init__(self):
>         self.index = 0
>         self.x     = range(1024)
>
>         # Initialise the threads system and allow threads to work with GTK
>         GLib.threads_init()
>
>         # Draw scope
>         self.figure = Figure(dpi=100)
>         self.canvas = FigureCanvas(self.figure)  # a Gtk.DrawingArea
>         #self.widget.alignment_ScopeDisplay.add(self.canvas)
>
>         # Draw initial scope
>         self.axes = self.figure.add_subplot(111)
>         self.line, = self.axes.plot(self.x, [0]* 1024)
>         self.axes.set_title("None")
>         self.axes.set_xbound(0.0, 1024)
>         self.axes.set_ybound(-16, 1040)
>
>         self.window_main = Gtk.Window(title="pyMatPlotLibTest")
>         self.window_main.connect("destroy", lambda x: Gtk.main_quit())
>         self.window_main.add(self.canvas)
>         self.window_main.show_all()
>
>         # Ticker for the update of the input state monitoring
>         Gdk.threads_add_timeout(priority = GLib.PRIORITY_DEFAULT_IDLE,
>                                 interval = 10, # msec
>                                 function = self.update_gui)
>         Gtk.main()
>
>
> if __name__ == "__main__":
>     gui = pyMatPlotLibTest()
>
>
> ------------------------------
> View this message in context: matplotlib.backends.backend_gtk3cairo
> memory leak
> <http://matplotlib.1069221.n5.nabble.com/matplotlib-backends-backend-gtk3cairo-memory-leak-tp45614.html>
> Sent from the matplotlib - users mailing list archive
> <http://matplotlib.1069221.n5.nabble.com/matplotlib-users-f3.html> at
> Nabble.com.
>
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to