Qt信号/插槽连接导致应用程序CPU使用率增加?

Qt信号/插槽连接导致应用程序CPU使用率增加?,qt,qt-signals,Qt,Qt Signals,我有一个为嵌入式系统用Qt开发的GUI应用程序,我的应用程序中有许多信号/插槽Qt::queuedconnections。在长时间运行应用程序后,我发现系统的CPU使用率随着时间的推移呈线性增长,这导致应用程序响应速度变慢 我没有断开这些信号/插槽连接。CPU使用率的增加与动态创建信号/插槽有关吗?是否有任何方法或方法来测试信号/插槽内存或CPU使用情况 我怀疑你的信号/插槽是否慢,因为(引自): 当涉及的任何一个对象被破坏时,信号插槽连接将被移除 某些事件(例如paintevent)可能在循环

我有一个为嵌入式系统用Qt开发的GUI应用程序,我的应用程序中有许多信号/插槽
Qt::queuedconnections
。在长时间运行应用程序后,我发现系统的CPU使用率随着时间的推移呈线性增长,这导致应用程序响应速度变慢


我没有断开这些信号/插槽连接。CPU使用率的增加与动态创建信号/插槽有关吗?是否有任何方法或方法来测试信号/插槽内存或CPU使用情况

我怀疑你的信号/插槽是否慢,因为(引自):

当涉及的任何一个对象被破坏时,信号插槽连接将被移除


某些事件(例如paintevent)可能在循环中被调用,这会导致CPU使用率的增加。检查是否有任何事件与“连接”关联。与上面的其他答案一样,信号/插槽不会导致CPU使用率的增加。

这是一个内存泄漏问题,与我怀疑的信号/插槽连接无关。我用valgrind算出了

您的探查器怎么说?信号/插槽仅仅是函数调用(如果是DirectConnection类型,这是单线程使用的默认情况),这取决于函数的功能,可能会导致CPU使用量线性增加。如果对象的数量或连接的数量随着时间的推移而增加,那么CPU的使用率也会随之增加。试着用探查器查看时间花在哪里。听起来像是内存泄漏。是的,是内存泄漏。我想出来了。感谢大家的宝贵回复。