objective-c - 如何找出 mach_msg_trap 等待什么?

标签 objective-c cocoa-touch performance instruments

我在目标上分析我的 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/

相关文章:

ios - TableView 标题中的 UISearchController 搜索栏留下状态栏大小的间隙

iphone - 触发 UIApplicationDidBecomeActiveNotification 后会调用什么?

iphone - UITableView 对象索引

ios - 使用 2 个链接的 ManagedObjectContext 应用程序撤消 CoreData 更改

ios - 我怎样才能使 int 等于 int64_t 而没有得到转换丢失整数精度警告?

ios - 在 iOS7 或 TextKit 中使用什么代替 scrollRangeToVisible

iphone - 获取 MKMapView 的边界

c - CLFLUSH() 的问题?

java - Android 日历选择生日给出了针对某一条件的剩余天数的错误

jquery - 哪种方式遍历 DOM 元素更快?