如何减少我的应用程序的“空闲唤醒”?

7

Mavericks对我的应用程序有太多的“Idle Wake Ups”感到不满。我知道这与计时器以及OS X试图使我的应用程序更节能有关。我该如何调试这些空闲唤醒?或者可能的原因是什么?


你的应用程序是用什么编程语言编写的?这取决于所使用的编程语言。 - PythonNut
1
这是一个Objective-C Cocoa应用程序。 - Ken Aspeslagh
1
最有可能的原因过去常常是使用没有设置“容差”(tolerance)的NSTimer,但是你现在应该已经解决了这个问题吧? - Tommy
2个回答

3
可能的原因是线程从等待状态中醒来的典型原因:
  • 定时器启动
  • 被阻塞在I/O(包括网络和IPC)上的线程被唤醒
  • 被阻塞在锁上的线程被唤醒
  • 虚假唤醒(但这些情况太少,不会导致您的问题)
如果您启动仪器,可以尝试使用系统跟踪和系统使用工具来诊断线程何时醒来。

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接