将我的 iPhone 项目升级到通用。 CADisplayLink 现在只有 30fps

Posted

技术标签:

【中文标题】将我的 iPhone 项目升级到通用。 CADisplayLink 现在只有 30fps【英文标题】:Upgraded my iPhone project to universal. CADisplayLink now only does 30fps 【发布时间】:2012-11-02 17:49:28 【问题描述】:

当给定“1”作为其帧间隔时,有什么方法可以找出 CADisplayLink 以 30fps 运行的原因?

我在 iPad mini 上运行该应用程序。当在 iPad mini 中作为 iPhone 应用程序运行时(使用带有 2x 按钮的模式),它运行如丝般顺滑 (60fps)。但是,在 iPad mini 上作为通用应用程序运行时,最高可产生 30fps,即使它什么都不画。

是什么原因造成的?它确实调用了 [displayLink setFrameInterval: 1],所以这不可能......对吧?

【问题讨论】:

你确定没有任何东西在后台线程中运行,或者另一个计时器可能会占用主线程?当您针对您的应用程序运行 Time Profiler 时,您是否看到任何可能占用处理器周期的东西? 绝对没有,因为我在 iPad 上运行与仅 iPhone 项目相同的东西(在视网膜分辨率下)。它以 60fps 的速度运行,没有任何改变。而且 30fps 似乎是一个真正设定的限制.. 仍在等待苹果官方论坛的答案。 【参考方案1】:

好吧,事实证明,使用 GLKit 东西而不是 CADisplayLink(GLKView、GLKViewDelegate)和 preferredFrameRate 解决了这个问题。我只需要重新实现一些东西,但它似乎起到了作用。

我猜它一定是一个 CADisplayLink 错误。

【讨论】:

以上是关于将我的 iPhone 项目升级到通用。 CADisplayLink 现在只有 30fps的主要内容,如果未能解决你的问题,请参考以下文章

将 iPhone 应用升级到通用,现在使用 splitview

如何将我的 laravel 5.0 项目直接升级到 5.4?

如何将我的应用程序限制为仅适用于 iPhone [重复]

我已经将我的项目 PHP 版本升级到 8 并将 PHPUnit 升级到 9.x,但是不再生成覆盖率报告?

为 iTunes 创建通用应用程序?

iPhone sdk 3.2.3 升级问题