我在Windows上有一个Qt控制台应用程序。我想对它进行分析,但QtCreator分析在Windows上不起作用。
我只使用了一些信号/插槽。应用程序是单线程的,每个连接都是Qt::QueuedConnection
。
Qt可以记录执行从事件循环中调用的每个插槽所花费的时间吗?它可以帮助我找到CPU瓶颈,而无需在程序中的任何地方手动添加定时器。
是否有可能覆盖插槽调用机制并测量被调用插槽执行时的时间?
答案 0 :(得分:1)
排队的时段通话以QMetaCallEvent
形式发送给接收方QObject
。因此,您可以在QCoreApplication::notify
传递这些事件时计时:从该方法中调用QObject::event
。
这有两个方面:
时间和数据收集 - 有关完整示例,请参阅this answer。
解码QMetaCallEvent
的内容以了解调用的方法 - 请参阅this question。