提高软件CPU占用率 | 您所在的位置:网站首页 › 提高处理器的软件 › 提高软件CPU占用率 |
案例: 独立线程以5ms一包的速率接收指令(一共大概70-80种指令类型),并放入一个队列A 主线程中,根据定时器去队列A中取数据,并解析/计算/显示(速率:200包/秒) 现象:按理说这个收/发的频率是能保持平衡的,也就是收多少就处理多少,延迟会很小(可能就是一个指令的传输时间),但是实际现象是,随着时间的推移,队列A越来越大。 发现:调试的时候发现是处理数据的时候,判断数据包类型,并进行解析模块比较费时间(注释掉这块内容就不存在延迟了)。因此排除了代码本身的问题; 代码没问题,那就只能从设备方下手 解决方案:提高软件的优先级,让CPU优先处理我这个软件的计算处理 //REALTIME_PRIORITY_CLASS 实时 //HIGH_PRIORITY_CLASS 高 //ABOVE_NORMAL_PRIORITY_CLASS 高于正常 //NORMAL_PRIORITY_CLASS 正常 //BELOW_NORMAL_PRIORITY_CLASS 低于正常 //IDLE_PRIORITY_CLASS 空闲 GetCurrentProcess():当前软件进程 int main(int argc, char *argv[]) { SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS ); }查看进程的当前CPU优先级: 任务管理器-鼠标右键(软件进程)-转到详细详细-鼠标右键(软件进程)-设置进程优先级 然后,你启动软件的时候就会发现,应用程序优先级,由默认的正常,改成了你需要的! |
CopyRight 2018-2019 实验室设备网 版权所有 |