Python中内存管理的问题
我的环境是python3+SublimeText。python是解释型语言,平常对内存关注得不多。
pyqtgraph实时显示占用内存
最近用Qt做了一个界面,发现关闭的时候很卡。打开任务管理器,查看python.exe,内存占用率飙升。
通过对语句进行注释,发现是用pyqtgraph中PlotWidget做实时显示消耗内存。
这里贴上优化的关键部分代码进行对比。
#原代码
import pyqtgraph as pg
while threadFlag:
self.timePlotWidget = pg.PlotWidget(self.main_widget)
self.timePlotWidget.plot(x_data, y_data)
#优化后代码
import pyqtgraph as pg
self.timePlotWidget = pg.PlotWidget(self.main_widget)
self.timeCurve = self.timePlotWidget.plot([], [])
while threadFlag:
self.timeCurve.setData(x_data, y_data)
优化之后内存还是少量增长。暂时还没找到问题在哪。
删除变量释放内存
import gc
del X_train, X_test
gc.collect()
(平常真的没有养成这样的习惯。要拿对C/C++一样的态度对待python)
后记
出现这个问题个人认为还是平常针对python系统学习不够,编程基础有待进一步加强。
持续更新,欢迎各路大佬批评指教❤……