求助:关于在 pyqt5 中使用 pyqtgraph 模块绘制动态波形图电脑内存不断增加的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ning2035

求助:关于在 pyqt5 中使用 pyqtgraph 模块绘制动态波形图电脑内存不断增加的问题

  •  
  •   ning2035 2020 年 11 月 24 日 1447 次点击
    这是一个创建于 1976 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目背景说明:这个项目是为了实现一个带上位机的电流表

    项目涉及到的技术栈:1.模拟电流表的嵌入式软件,硬件
    2.上位机界面:pyqt5+pyqtgraph
    3.数据存储:mongodb

    细节说明:本项目为一个单片机,通过串口每秒给上位机发送 1 帧数据,每 1 帧数据含 100 个 int 类型的数据,上位机从串口中收取单片机发送的数据,然后处理之后写入 mongodb,此为功能 1:写入数据库,问题就出现在第二个功能上,当从 mongodb 中查询数据,然后用 pyqtgraph 显示在界面上的时候,电脑的内存随着 pyqtgraph 显示的曲线增多而不断增加,目前测试是 1.5G 的数据,会使电脑占用的内存达到 90%,我电脑是 24G 内存,而且我查询数据的时候,不保存数据,仅显示,因为一开始全部查询上位机直接挂掉,所以现在循环查询,即从数据库中查询 100 个_ID(100 个文档的数据,我将默认的_id 存为从 1 开始的递加的序号了),然后用 pyqtgraph:self.plotWidget_max_load.plot(y=d, x=a, pen='b')(a,b 为同样长度的数组)显示出来,然后将 a,b 初始化,然后再查询,再显示,再初始化,循环,一开始的没有异样,但是随着显示的数据增多,内存开始增加,最后达到 90%,我有试过将上文显示的那条语句屏蔽掉,那么电脑的内存就不再增加,不管数据有再多,都不会增加.所以问题就出在那条语句上,但是真的不知道是 pyqt5 导致的呢,还是 pyqtgraph 导致的,我也试图百度过,谷歌过,但是能查到的资料都是类似于简单使用,而且一般的人也没有我样多的数据吧?所以考虑了很久都没有找到了答案.目前妥协的方式是,降低采样率,即 100 个点里选一个点,或者是 1000 个,10000 个点里采一个点,这样数据量很少,也不会增加内存了,但是长期挂测,还是会因为数据量过大,而出现上面描述的问题.


    萌新不容易啊,好不容易,等了四个小时,才能提问,第一次提问以上有说的不明白的对方,还请见谅,希望各位大佬指教,谢谢
    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4903 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 05:41 PVG 13:41 LAX 22:41 JFK 01:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86