2012-04-09 32 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

如果沒有,則使用任何可用的分析器。

如果沒有探查器可用,請慢慢從應用程序中剝離出功能。或者可能不是很慢,但可以進行二分搜索(即去掉一半的功能)。無論如何更容易。

取決於您的應用程序做第三件事(即撕掉事情而不是使用事件探查器)可能實際上是獲得勝利的最快途徑,但值得花一些時間並學習使用事件探查器。

相關問題