CADisplayLink射击精度

时间:2016-07-29 15:36:34

标签: ios opengl-es

  • 主要运行循环上的CADisplayLink,默认模式
  • 使用mach_absolute_time()
  • 计时连续调用
  • 目标选择器实际上是空功能

连续调用之间的测量时间范围为 14ms-20ms。

  • 尝试与屏幕刷新同步意味着什么?
  • mach_absolute_time()中的~3ms是否不准确?或者在CADisplayLink调度中?

1 个答案:

答案 0 :(得分:0)

我不认为它是mach_absolute_time,但您可以尝试其他机制(即我通常使用CFAbsoluteTime)。而且我认为它也不是CADisplayLink。这可能是在主队列上发生的其他事情(你正在做的事情或操作系统本身正在做的事情)。

仅仅为了比较,当我在一个相当快的设备上用CADisplayLink测试CFAbsoluteTime时,一旦系统达到静止状态,可变性远小于±3ms。我在iPad上看到的时间不到±0.1ms(诚然,我没有使用OpenGL)。在模拟器上,我看到更大的可变性(可能是因为有更多的进程争用CPU)。