【发布时间】:2022-02-03 23:06:08
【问题描述】:
有没有办法知道 iOS 应用何时响应用户交互?例如,用户点击一个按钮,应用程序执行工作,这个工作可能会异步调度其他工作到主线程。为了将其用作性能指标,我想知道应用程序再次能够以响应方式处理触摸事件的确切时刻。有了这个,我想要像“平均而言,应用程序在用户交互后 55 毫秒响应”这样的数据。
目前,在用户交互之后,我会立即观察主队列并有一个向其提交样本的启发式方法,以便根据主队列的响应性来估计响应性,假设主队列的响应性与应用程序直接相关'反应能力。采样只发生在队列再次持续响应一段时间(例如 100 毫秒)之前。这种方法有什么缺点吗?我可以/应该使用其他方法吗?
使用 MetricKit 监视挂起时间不是一个选项,因为我无法将这些结果用于特定交互(即了解不同的交互如何影响挂起时间)。
【问题讨论】:
标签: ios performance grand-central-dispatch responsiveness