• 4529阅读
  • 3回复

主线程CPU使用率过高原因 [复制链接]

上一主题 下一主题
离线feixiangxtu
 

只看楼主 倒序阅读 楼主  发表于: 2015-10-14
Linux下运行中的一个qt程序,一开始CPU占用率只有30%左右,大概运行20天左右,不知道什么原因CPU占用率达到95%,使得界面非常卡。分析了一下该进程下所有线程的CPU使用率,发现GUI主线程的CPU使用率最高,其它线程占有很少。运行期间,会不断的接收外部时钟同步从而修改系统时间。
请问,GUI主线程CPU占用过高的主要原因有哪些?跟内存泄漏是不是有关系?跟系统时钟是不是有关系?
离线z55716368

只看该作者 1楼 发表于: 2015-10-14
我前段时间做的那个程序,最开始的时候版本不注意内存释放,后来发现问题释放之后CPU占用就低了。其他原因不太了解,系统时钟应该不会。
每一个问题 都是一次进步
离线stlcours

只看该作者 2楼 发表于: 2015-10-14
我碰到过,不过有点不一样,是CPU一直 100%占用,原来是在PaintEvent里贴图,平均每秒贴3~4次。其实总共只需要贴一次就行了。

另外Timer开多了,忘了关闭,就会感觉界面停顿。

不过我这些都是在Windows下碰到的问题。

>>运行期间,会不断的接收外部时钟同步从而修改系统时间。
这句也是疑问。我不懂,谁会给它发时钟?
离线feixiangxtu

只看该作者 3楼 发表于: 2015-10-30
谢谢两位回复!我找到一个原因:QMovie播放GIF图片cpu占用率高!
平台:Linux+QT4.6.3
当打开一个窗口,该窗口利用QMovie播放GIF图片,从LinuxShell端监视发现,cpu占用率高会增加很多。而且关闭该窗口后,cpu占用率会下降,但是不会回到原来的状态,我搜索了下QT官网这个帖子说是QT的BUG:https://bugreports.qt.io/browse/QTBUG-2441, 但是没有看到如何解决或者有没有代替方法?其他QT Developer是否遇到过?有什么解决方案?
快速回复
限100 字节
 
上一个 下一个