我有一个在 SceneKit + Metal 上用 Swift 编写的应用程序。当我从 Xcode 构建并运行应用程序时,fps 计数器显示 40fps。但是,如果我通过点击跳板 fps 计数器上的图标自己运行该应用程序,则显示 60fps。怎么会这样? Xcode 会在调试时以某种方式影响应用程序性能吗?我不知道这一切是如何工作的,但我想可能有一些钩子(Hook)可以让调试正常工作,这会影响性能。如果是这样,我可以选择加入吗?
我知道调试和发布版本的不同构建标志,但我不制作发布版本。从 Xcode 运行时与我在手机上手动运行应用程序时,同一调试版本的性能不同。
最佳答案
默认情况下,Xcode 启用 Metal 验证层。这会对您如何使用它进行一系列额外检查以捕获不正确的使用。额外的检查很慢,这就是为什么除非启用验证,否则 Metal 不会这样做。
这可以在 Xcode 的 Scheme 编辑器中更改。这是 documented在 Apple 的 Metal 编程指南中。
关于ios - Xcode 会在调试时影响应用程序性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52535904/