我的Python QApplication有一个按钮(在主窗口上),当点击它时,会启动一个pyqtgraph Plot。下面的代码显示了如何在类中生成绘图。
self.win = pg.GraphicsWindow()
self.win.setWindowTitle(self.title)
self.p = self.win.addPlot()
self.curve = self.p.plot(self.Data1)
我注意到的一件事是,当我关闭应用程序中的绘图窗口时,内存不会被释放。因此,例如,在按下按钮之前,应用程序大约需要20Mb。单击按钮启动绘图后,此值将增加到25Mb。但是当我关闭绘图(通过单击右上角的x)时,应用程序内存占用量保持在25Mb。关闭绘图时是否有任何方法可以释放此5Mb内存(请注意,我有行self.curve.clear()
,因此在实时更新绘图时没有泄漏。)
是否需要修改close()
或closeEvent()
方法。或者以某种方式删除对象的引用(虽然不确定如何完成)。
非常感谢您的阅读!
答案 0 :(得分:0)
有几件事。
free
他们已经分配的内存并不会立即使用它的情况并不罕见 - 这将是一个可怕的策略,因为启发式,你很可能再次需要至少部分内容。而且严重的是,在运行Python GUI的机器上,5MB的内存(保留?映射?)并不是那么多,因此提前释放它们没有任何好处。这样做可能会被批评为糟糕的运行时设计。