iPhone + OpenGL +触动:FPS下降

发布于 2024-09-04 02:32:04 字数 330 浏览 8 评论 0原文

最近我遇到了一个非常奇怪的问题:触摸 iPhone 屏幕并移动手指可能会消耗我 50% 的 FPS。是的,我检查了我的代码是否存在可能的瓶颈——而不是问题。在写这篇文章之前我尝试的最后一个方法是注释掉所有触摸处理代码,然后查看 FPS。结果是:无触球 – 58-60。触摸并移动手指 – 即时 35-40 FPS。

渲染是在单独的线程中完成的,因此主运行循环事件不会与其发生冲突。然而,解决这个问题对我(以及我开发的游戏)来说是非常痛苦的,因为这样的 FPS 下降确实很明显。

提前感谢您的帮助。

更新:似乎将渲染线程的优先级设置为更高的值会有所帮助......

Recently I ran into a very strange issue: touching the screen of the iPhone and moving a finger around can eat up to 50% of my FPS. Yeah, I checked my code for possible bottlenecks – not the issue. The last resort I tried before writing this post – commenting out all the touch processing code and looking at FPS then. Results are: no touches – 58-60. Touching and moving the finger – 35-40 FPS instantly.

The rendering is done in a separate thread, so that no main runloop events shall collide with it. However, it's very crushial for me (and the game I develop) to resolve this issue, because such FPS drop is really noticeable.

Thank you for your help in advance.

UPDATE: seems that setting rendering thread's priority to higher value helps a bit...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱你不解释 2024-09-11 02:32:04

iPhone、iPod Touch 和 iPad 都是单处理器、单核设备。简单地将渲染代码放在与触摸事件处理不同的线程上(尽管这是一个好主意),但并不能阻止触摸处理占用 CPU 周期。提高帧速率的唯一方法是使触摸处理代码更快或使渲染更快。您追求哪一个取决于您应用程序的具体情况。

The iPhone, iPod Touch, and iPad are all single-processor, single-core devices. Simply putting your rendering code on a separate thread from touch event handling—though a good idea—won't prevent the touch processing from eating up CPU cycles. The only way to make your framerates go up will be to either make the touch handling code faster or make the rendering faster. Which you pursue depends on the specifics of your application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文