• 5514阅读
  • 6回复

关于Qt的负荷 [复制链接]

上一主题 下一主题
离线xymail110
 
只看楼主 倒序阅读 楼主  发表于: 2009-06-11
我们开发了一个显控软件,界面部分分成2块:固定的窗口显示是用Qt实现的,另外的视频显示是直接写framebuffer实现的。

整个软件已经完成了,在测试的时候,出现了非常奇怪的问题。

程序运行很长的时间以后,有时候qt界面部分失去了响应,就是键盘、鼠标都没有反应,但是视频部分仍然正常,难以理解。再过了一段时间(几十分钟吧)qt界面又恢复响应了,程序完全正常的运行。

这说明程序的逻辑应该是没什么问题的,我们怀疑是负荷太大导致Qt的响应中断,但是Qt的参考文档里没有提到相关的内容。

请教各位大侠,帮忙分析一下问题所在。

谢谢。
学无止境
离线jorneyr

只看该作者 1楼 发表于: 2009-06-11
晕死, 多线种处理.
离线xymail110
只看该作者 2楼 发表于: 2009-06-12
回楼上,我们当然是用多线程了,这么大的程序,怎么可能不用多线程呢?

程序的逻辑应该是没问题的,因为绝大部分时候都是跑的很正常,只是在一段时间以后才会出问题.

希望楼主进来解答一下.
学无止境
离线yj_yulin

只看该作者 3楼 发表于: 2009-06-13
没什么线索哦,估计没真正解决过这问题的人一般不知道是怎么回事.
感觉可能是线程调度的问题,
也有可能你遇到了qt中事件处理的bug,因为qt对事件的优化还是很多的,优化多了,难免会有在特殊状况下的一些小问题,这个概率应该很小
,或者程序写得不太正确,比如线程的同步没同步好,有些东西锁定时间过长等,

建议用多个不同版本的qt来测试下看看是不是一样的问题.
当然,经济允许的话,还是直接找tech support最方便了.
离线zealane

只看该作者 4楼 发表于: 2009-06-13
很深。。。。
离线xymail110
只看该作者 5楼 发表于: 2009-06-16
  经过这几天的分析和调试,我们发现了一些线索,曾经有过光标卡住不能动的问题,经过n次试验发现是一个非qt的线程有问题,那个线程循环里的负荷相当大,每秒钟要往framebuffer上写几百万个像素的值,这应该会有一些问题。但是不能解决qt界面全部卡死的问题,目前仍在试验中。希望有研究过程序的强度或者负荷方面的人一起分析一下,给出一些建议。
  另外,在处理二次信息的时候我需要作图,这个作图的过程是在qt的鼠标移动事件里处理的,就是随鼠标的运动来作图,但是具体画图实现也是直接向framebuffer写数据,当快速移动鼠标的时候,光标也会有点卡,但是还能响应,只是卡而已。经过我n次调试,我发现如果我的作图函数一次只描很少一部分点的时候,就不卡。也是很莫名,这到底是Qt的鼠标事件响应不过来呢还是我直接作图的时候写数据太慢引起的。敬候指教。
  谢谢。
学无止境
离线xymail110
只看该作者 6楼 发表于: 2009-06-16
  另外,3楼的兄弟,你说的qt的优化是什么意思?能举个例子说明一下么?
学无止境
快速回复
限100 字节
 
上一个 下一个