iOS CPU Profile:为什么这个线程可能会吸收99.9%的CPU?

时间:2014-07-24 17:25:04

标签: ios multithreading xcode-instruments

有时当我加载表格视图时,除了让表格视图显示之外,我没有故意执行任何活动,我等待几秒钟然后我的CPU使用率就会上升。我怎样才能找到原因?

enter image description here

2 个答案:

答案 0 :(得分:15)

  

为什么这个线程会吸收99.9%的CPU?

我不知道。但这里有一些想法:

  1. 负责的资料库是UIKit。所以似乎有些用户界面代码被破坏了。
  2. 名为FreeContextStack的函数已运行很长时间。
  3. pthread_oncepthread_getspecific需要相当长的时间。这些功能很快,所以他们必须经常运行非常
  4. 他们是GetContextStackPopContext
  5. 的一部分

    似乎在您的代码中存在某种" context"堆栈被推 - 但没有弹出。我会查找UIGraphicsPushContextUIGraphicsBeginImageContext的匹配项,而不会查看其结果。

    但我可能完全不在,而且这些功能不是图形上下文代码的一部分。

答案 1 :(得分:1)

您可能无法结束UIGraphicsBeginImageContext

我在使用后添加UIGraphicsEndImageContext解决了相同问题。