背景
使用场景为从串口读取传感器数据,并实时绘图,如下图所示:采样率为600Hz,采用子进程的方式分别进行读取数据和绘图,进程之间使用python自带的队列queue.Queue进行数据交换,每读取到一个数据就加入到队列中。
高速采样并绘图-改进前
结果发现绘图进程的执行效率跟不上串口读取的进程,count和iVS分别表示读串口进程和绘图进程处理的数据个数,两者差别越来越大。
解决方案
在绘图进程中加入以下代码,通过批次读取队列数据(此处为100个),提升了效率,避免队列积压数据。
size = 100
if q.qsize() > size:
for _ in range(size):
改进后的结果如下图所示:
高速采样并绘图-改进后
可以看到,绘图的刷新速度大大提升,处理速度iVS和产生数据的速度count基本相等。
Python高速采样绘图效率改进方案
博客围绕从串口读取传感器数据并实时绘图展开。原方案采用子进程分别读取数据和绘图,用队列交换数据,但绘图进程效率跟不上读取进程。解决方案是在绘图进程中批次读取队列数据,提升了效率,避免队列积压。
8555

被折叠的 条评论
为什么被折叠?



