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 thanksDavidCode below:
from gi.repository import Gtk, Gdk, GLibfrom matplotlib.figure import
Figure# Tell matplotlib to use a GTK canvas for drawing#from
matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as
FigureCanvasfrom matplotlib.backends.backend_gtk3cairo import
FigureCanvasGTK3Cairo as FigureCanvas# Application Classclass
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: 
http://matplotlib.1069221.n5.nabble.com/matplotlib-backends-backend-gtk3cairo-memory-leak-tp45614.html
Sent from the matplotlib - users mailing list archive 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

Reply via email to