一个可能解决 Qt 程序运行 CPU 占用率高的方法

文章探讨了在Qt应用程序中,通过使用子线程和调整Sleep函数参数来优化CPU占有率的方法。在不同版本的程序测试中,发现合理利用Sleep函数可以显著降低CPU占用,特别是在处理TCP通信和FPGA数据交互的场景下。优化后的version3将CPU占有率稳定在了23%。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先引用一位大佬的回答,真的很全面== Qt 性能优化:CPU占有率高的现象和解决办法

问题描述:

我的程序通过TCP与硬件FPGA交互获取数据,然后显示在界面上,同时还有四个子线程,分别负责:网络连接;数据接收;数据存储;数据读取。

version 1:

刚运行时:CPU占有率80%左右,但是打开对应的子线程,CPU占有率会相应下降,最低到45%

version 2:

给所有子线程的while循环处添加 Sleep(1)
再次运行程序,CPU占有率下降到65%,同样打开对应的子线程,CPU占有率相应下降,最低到45%

version 3:

将原来子线程的Sleep时间改一改,如原来是 Sleep(300),现在改为 Sleep(100),再次运行程序,CPU占有率下降到23%,同样打开对应的子线程,CPU占有率不再下降,基本稳定在23%

总结:

CPU占有率较高的时候,首先得想到使用子线程,但是在有子线程的情况下,就要注意使用 Sleep()函数,以表示让渡时间片;另一方面,使用也要考虑 Sleep()函数里的数值,不可过大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值