案例:
独立线程以5ms一包的速率接收指令(一共大概70-80种指令类型),并放入一个队列A
主线程中,根据定时器去队列A中取数据,并解析/计算/显示(速率:200包/秒)
现象:按理说这个收/发的频率是能保持平衡的,也就是收多少就处理多少,延迟会很小(可能就是一个指令的传输时间),但是实际现象是,随着时间的推移,队列A越来越大。
发现:调试的时候发现是处理数据的时候,判断数据包类型,并进行解析模块比较费时间(注释掉这块内容就不存在延迟了)。因此排除了代码本身的问题;
代码没问题,那就只能从设备方下手
解决方案:提高软件的优先级,让CPU优先处理我这个软件的计算处理
查看进程的当前CPU优先级:
任务管理器-鼠标右键(软件进程)-转到详细详细-鼠标右键(软件进程)-设置进程优先级
然后,你启动软件的时候就会发现,应用程序优先级,由默认的正常,改成了你需要的!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!