小编moo*_*ray的帖子

Qt:衡量事件处理时间

我想测量我的应用程序中的哪些事件需要很长时间才能在主线程中执行(阻止GUI),或者至少是否有任何超过10毫秒的事件.我显然使用线程和并发来完成需要很长时间的任务,但有时很难在其他线程中放入什么以及GUI可以保留的内容之间划清界线.特别是对于在多个操作系统上运行的应用程序以及新的和几年前的硬件.

我查看了QApplication(和QCoreApplication),但它没有任何"processSingleEvent"类型的功能,我可以轻松覆盖并包装时间测量.事件过滤器也不起作用,因为AFAIU在处理事件后无法获得通知.

我认为我可以手动调用QApplication :: processEvents(无需调用exec),但同样它不会提供单事件粒度,并且正如我所读,它不处理destroy事件.

我查看了QCoreApplication :: exec实现,发现它在内部使用QEventLoop,所以如果我想将我的特殊代码添加到原始实现中,我将不得不重新实现QApplication和QEventLoop从Qt源复制大量代码...

编辑:问题显然是:如何以简单和"干净"的方式衡量事件处理时间?

qt

2
推荐指数
1
解决办法
611
查看次数

标签 统计

qt ×1