【问题标题】:In iOS, How many times does RunLoop cycle in one secondiOS中,RunLoop在一秒内循环多少次
【发布时间】:2021-10-29 11:34:40
【问题描述】:

在 iOS 中,RunLoop 在一秒钟内循环了多少次? 是不是和屏幕刷新率一样,每秒60次?

【问题讨论】:

  • 是的,只是屏幕刷新率并不总是每秒 60 次。
  • 如果您想匹配屏幕刷新率,您可能需要使用CADisplayLink
  • iPhone 刷新率不是恒定的,可能会因负载而异。而且,并不总是基于 60fps。一些旧设备是 30fps,而新 iPhone 13 的目标是 120fps。
  • 每个线程有一个RunLoop。此外,文档(即使对于 main thread RunLoopCFRunLoop)也没有提及它的运行频率,或者它是否与显示刷新率有任何关系。最好提及您想要实现的目标,这样您会得到更好/相关的答案。
  • @matt - 你确定吗? IIRC,运行循环的运行频率远高于屏幕刷新率。

标签: ios uikit runloop


【解决方案1】:

不,运行循环频率与屏幕刷新率不同。 (除非您阻止线程,否则它通常会超过潜在的屏幕刷新率。)

当我们需要与屏幕刷新过程进行协调时,我们通常使用CADisplayLink,它不仅以所需的频率运行,而且在屏幕刷新周期内最大化其时间。

请注意,屏幕刷新率可能因设备而异,而且在新设备上,它们甚至会根据在特定设备上运行的特定任务的需要而有所不同(需要更好的性能时更快,不需要时更慢并且您想享受更高的能源效率)。见Optimizing ProMotion Refresh Rates for iPhone 13 Pro and iPad Pro

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2023-03-17
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多