2012-04-09 34 views
0

我的程序包含一个widget类的子节点,并且为子节点重新定义了paint()函数。确定为什么GUI程序在空闲时消耗CPU周期

即使空闲,程序也会消耗大量的CPU周期。我的paint()函数中的printf()表明只有当我期望调用paint()时才会调用paint()。

我还有什么可以尝试找到消费的来源?

添加

让我回过头来一些真正的基本。在XCode 3中,过去有一种构建设置可以在“调试”和“发布”构建之间进行选择,但是我不再在XCode 4中看到这样的设置。如何生成调试构建?也许对于我原来的问题的答案就像在程序处于空闲循环时按“暂停”(另一个消失的按钮)一样简单。 (我应该补充说,循环本身属于工具包,而不是我的代码。)

+0

您是否尝试使用调试器(例如'gdb'或其他可用的)?如果有的话,你也可以使用'strace'或'ltrace'甚至是'valgrind'这样的工具(如果怀疑内存泄漏,这个工具大多是相关的)。 – 2012-04-09 16:28:05

+0

使用仪器查看CPU利用率。 – zaph 2012-04-09 16:39:15

回答

0

假设这是MacOS Xcode开发,您可以使用Xcode附带的profiler

如果没有,则使用任何可用的分析器。

如果没有探查器可用,请慢慢从应用程序中剥离出功能。或者可能不是很慢,但可以进行二分搜索(即去掉一半的功能)。无论如何更容易。

取决于您的应用程序做第三件事(即撕掉事情而不是使用事件探查器)可能实际上是获得胜利的最快途径,但值得花一些时间并学习使用事件探查器。

相关问题