ios - Xcode 会在调试时影响应用程序性能吗?

标签 ios swift xcode scenekit metal

我有一个在 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/

相关文章:

ios - 当且仅当 producerA 不抛出错误时如何执行 producerB?

objective-c - Swift 动态转换失败 - 尝试运行单元测试时出错

ios - 如何根据屏幕大小加载特定的 Storyboard

ios - MasterDetail 模板中的属性和 ivars

ios - Xcode - 如何使用属性检查器中的本地化字符串

ios - 无法使用 swift 在 AVPlayerViewController 上捕获滑动手势

ios - 渲染 PDF iOS-iPad-Quartz 时出现问题

ios - 可达性等级无法正常用于 VPN 连接

ios - 找不到 Realm 文件的加密 key

swift - 带参数的 Alamofire GET 请求,-> "extra argument in call"