如何减少应用程序的"空闲唤醒"?

Ken*_*agh 6 macos cocoa objective-c osx-mavericks

小牛很生气我的应用程序有太多"空闲唤醒".我知道这与计时器和OS X尝试使我的应用程序更节能的方式有关.如何调试这些空闲唤醒?或者可能的原因是什么?

Chr*_*ris 4

可能的原因是线程从等待中唤醒的典型原因:

  • 定时器关闭
  • I/O(包括网络和 IPC)唤醒时线程被阻塞
  • 锁唤醒时线程被阻塞
  • 虚假唤醒(但这种情况太罕见,不会导致您的问题)

如果您启动仪器,您可以尝试使用系统跟踪和系统使用工具来诊断线程何时唤醒。