我在目标上分析我的 iPhone 应用程序,根据 Instruments,65% 的时间花在 mach_msg_trap
上。
我有一个永远运行的后台线程,并使用 performSelectorOnMainThread:withObject:waitUntilDone:
将结果发送回主线程,大约每 2 秒发送一次。我不会等到完成。
最佳答案
事实证明,我的应用实际上并没有将 65% 的时间花在 mach_msg_trap
函数上。这是我在 Instruments 中的配置错误。
采样器工具默认为所有样本计数,这将测量所有线程,无论它们的状态如何。
改为切换到反射(reflect)当前实际工作负载的运行采样时间。 Screenshot of Instruments http://developer.apple.com/library/mac/qa/qa2009/images/qa1619_running_sample_times.png
关于objective-c - 如何找出 mach_msg_trap 等待什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1488601/