Metal App FPS 在 Debug 中下降,但在分析时在 Instruments 中很好

Posted

技术标签:

【中文标题】Metal App FPS 在 Debug 中下降,但在分析时在 Instruments 中很好【英文标题】:Metal App FPS drops in Debug but fine in Instruments while profiling 【发布时间】:2019-10-12 19:56:53 【问题描述】:

我正在使用 Metal 来渲染实时视频帧以及一些用于缩放的自定义控件(圆形滑块),我使用 Quartz 2D API 实现了这些控件。当我在调试器中运行应用程序时,我看到 FPS 从 30 下降到有时 11,并且在 iPad Mini 2 等旧设备上缩放不流畅。然后我在 Time Profiler 中运行代码,令人惊讶的是,Time Profiler 中没有 fps 下降.应用程序在 Profiler 中运行流畅。我如何知道是什么导致调试中的 fps 下降?

【问题讨论】:

【参考方案1】:

可能是Metal Validation 层对您的调试方案有效。调试时程序的性能通常会变差(由于缺乏优化或启用断言等),这通常并不令人惊讶。

如果你想在调试时获得类似的 Metal 性能,可以尝试在 scheme 设置中禁用 Metal Validation。但是,当然,您失去了验证您使用 Metal 的实际调试好处。

【讨论】:

不幸的是没有任何区别。还有什么可以尝试的? 我对 MTKView 与 GLKView 以及调试与配置文件与发布版本有更多的观察。将发布一个单独的问题。 这里是新问题的链接 - ***.com/questions/58362049/…

以上是关于Metal App FPS 在 Debug 中下降,但在分析时在 Instruments 中很好的主要内容,如果未能解决你的问题,请参考以下文章

FPS在SpriteKit中下降

ThreeJS FPS 下降

将孩子添加到场景 ARKit/SceneKit 时 FPS 下降

我在我的 libgdx_project 中使用 FBO 渲染图像传递模糊着色器,fps 下降到 20。为啥?

Cocos2d FPS 下降 ||仅在分析模式下工作

SpriteKit fps 在第一次动画调用时下降