在iOS上,可以同时设置两个计时器,或者让计时器在0.0083秒后触发事件,以达到120 fps?

在iOS上,可以同时设置两个计时器,或者让计时器在0.0083秒后触发事件,以达到120 fps?,ios,timer,core-animation,Ios,Timer,Core Animation,使用CADisplayLink,iOS上的最高计时速率似乎是每秒60次,每次为0.01666秒。是否可以同时设置两个计时器,以便更频繁地更新图像的位置 或者,一个计时器事件处理程序能否在0.00833秒后触发另一个计时器事件,以便在1/60间隔之间有另一个更新,以达到120 fps?为什么要在每秒更新60次的屏幕上达到120 fps? 那只会浪费CPU和电源。不要这样做 然而,拥有一个触发频率更高的计时器绝对是可能的。 但是,不可能在每个回调中绘制。(至少使用-drawRect:,不知道Open

使用
CADisplayLink
,iOS上的最高计时速率似乎是每秒60次,每次为0.01666秒。是否可以同时设置两个计时器,以便更频繁地更新图像的位置


或者,一个计时器事件处理程序能否在0.00833秒后触发另一个计时器事件,以便在1/60间隔之间有另一个更新,以达到120 fps?

为什么要在每秒更新60次的屏幕上达到120 fps?
那只会浪费CPU和电源。不要这样做

然而,拥有一个触发频率更高的计时器绝对是可能的。

但是,不可能在每个回调中绘制。(至少使用-drawRect:,不知道OpenGL)。

为什么要在每秒更新60次的屏幕上实现120 fps的速度?
那只会浪费CPU和电源。不要这样做

然而,拥有一个触发频率更高的计时器绝对是可能的。

但是,不可能在每个回调中绘制。(至少使用-drawRect:,我不知道OpenGL)。

您不能这样做,原因有很多。首先,由于硬件限制,60fps有一个硬上限。第二,NSTimer对于这类事情还不够精确。从计时器编程主题-计时器文档(为强调添加粗体):

定时精度

计时器不是实时机制;只有当其中一个 已添加计时器的运行循环模式正在运行且可启用 检查计时器的启动时间是否已过。因为各种各样的 典型运行循环管理的输入源,的有效分辨率 计时器的时间间隔限制在50-100之间 毫秒。如果计时器的触发时间发生在运行循环中 不监视计时器或在长调出期间的模式 直到下次运行循环检查计时器时,计时器才会启动。 因此,计时器可能触发的实际时间可以是 计划点火时间后的一段重要时间


你不能这样做有很多原因。首先,由于硬件限制,60fps有一个硬上限。第二,NSTimer对于这类事情还不够精确。从计时器编程主题-计时器文档(为强调添加粗体):

定时精度

计时器不是实时机制;只有当其中一个 已添加计时器的运行循环模式正在运行且可启用 检查计时器的启动时间是否已过。因为各种各样的 典型运行循环管理的输入源,的有效分辨率 计时器的时间间隔限制在50-100之间 毫秒。如果计时器的触发时间发生在运行循环中 不监视计时器或在长调出期间的模式 直到下次运行循环检查计时器时,计时器才会启动。 因此,计时器可能触发的实际时间可以是 计划点火时间后的一段重要时间


我想定时器速率限制在60/秒的原因是硬件定时器中断。这意味着这两个计时器将同时或几乎同时启动。或者我们可以有两个线程,一个线程尽可能多地进行屏幕更新,另一个线程只处理用户的事件iOS设备上的最大屏幕刷新速率为60 FPS,因此,即使您能够将计时器设置为以120 Hz的频率启动,您将无法更快地更新屏幕上的对象。显示链接已在后台线程上运行,而UI事件则在主线程上出现。我想定时器速率限制为60/秒的原因是硬件定时器中断。这意味着这两个计时器将同时或几乎同时启动。或者我们可以有两个线程,一个线程尽可能多地进行屏幕更新,另一个线程只处理用户的事件iOS设备上的最大屏幕刷新速率为60 FPS,因此,即使您能够将计时器设置为以120 Hz的频率启动,你将无法更快地更新屏幕上的对象。显示链接已经在后台线程上运行,而UI事件则在主线程上出现。经常触发计时器,尤其是在复杂绘图的情况下,是绝对不可能的。而且这毕竟没有任何意义。首先,我不太熟悉硬件、图形卡或GPU,不管它是否“被硬件限制为60fps”,没有什么能超越这一点。原始问题的一个动机是,一些HDTV是60fps,你可以看到图像以微小的步幅移动(不是平滑的运动),所以一些HDTV有120fps或240fps(他们称之为120Hz)。。。这就是为什么最初的问题@太極者無極而生 当然,有些屏幕的更新频率超过60Hz,因此可以显示超过60fps。不过,当前的iOS设备只能以60Hz的频率刷新。经常启动计时器,尤其是在复杂绘图的情况下,是绝对不可能的。而且这毕竟没有任何意义。首先,我不太熟悉硬件、图形卡或GPU,不管它是否“被硬件限制为60fps”,没有什么能超越这一点。原始问题的一个动机是,一些HDTV是60fps,你可以看到图像以微小的步幅移动(不是平滑的运动),所以一些HDTV有120fps或240fps(他们称之为120Hz)。。。这就是为什么最初的问题@太極者無極而生 当然,有些屏幕的更新频率超过60Hz,因此可以显示超过60fps。