使用 Instruments 识别滚动视图帧丢失

Identify scroll view frame drops using Instruments

是否有任何方法可以使用 Instruments and/or Xcode?

我试图让我的滚动视图的滚动尽可能平滑,但 FPS 有时会下降到 59 甚至 58,而大约一半的时间保持在 60,所以我想知道是什么正是造成这种情况的原因。

我确实在 Core Animation 模板的 CPU Usage 工具中启用了 Record Waiting Threads 标志,它确实不时显示每个核心 100% 使用率的针状尖峰时间(接近丢失帧的秒数),但我似乎无法找出一种方法来识别代码中导致丢失的确切位置 - 所有被调用的函数的影响都非常小,并且百分比为个位数(所以这很可能是等待锁的主线程。

您是否尝试过使用 Instruments 中的 Time Profiler 工具查看滚动时代码的哪些部分更活跃?

有一个非常好的 WWDC 教程视频,介绍如何使用时间分析来查找和修复代码中的瓶颈:https://developer.apple.com/videos/play/wwdc2015/412/

我建议您观看此视频,它可能会帮助您找到解决问题的方法。