avi*_*ide 5 iphone frame-rate opengl-es cadisplaylink
起初我使用 NSTimer 并遇到帧速率卡在每秒 40 帧的问题。我读过有关使用 CADisplayLink 来解决问题的信息。它似乎工作了一段时间,但最近,应用程序以 60 fps 启动,然后过了一会儿(大约 5 - 20 秒),应用程序开始以 40 - 41 fps 运行并卡在那里。我进行了剔除,以便当对象在视野之外时减少绘制,但它仍然卡在那里。一种不寻常的方法似乎可以暂时解决这个问题(大约 10 秒),那就是断开 iPhone 底部的电线,然后重新连接。显然,这并不理想,但只是想知道为什么会发生这种情况以及为什么它会在某种程度上修复它,就好像它重置了某些值或其他东西一样。任何帮助将不胜感激,谢谢。
您是否检查过是否确实丢帧?您使用的CPU/GPU是否达到每秒只能绘制40帧的程度,或者问题出在软件的某个地方?
请记住,如果 aCADisplayLink无法触发屏幕刷新(由于主线程正忙于绘制上一帧之类的事情),那么它可能会跳过它,因为它没有足够的时间来完成。因此,如果某些帧的绘制时间超过 0.01666... 秒,您将错过随后绘制帧的时间间隔,并且速度可能会比实际情况更糟。
另请记住,移动设备并不总是能够快速绘制所有内容。iPhone 4 中的 A4 处理器非常好,但每秒填充 960x640 屏幕像素 60 次仍然是一项艰巨的任务。如果您的帧速率是 40 fps 而不是 60 fps,绝大多数用户不会注意到 - 人眼通常不会注意到抖动或屏幕滞后,直到您的帧速率约为 20 fps 或更低。
| 归档时间: |
|
| 查看次数: |
2886 次 |
| 最近记录: |