我正在尝试调试为什么我们基于 SceneKit 的应用程序使用如此多的内存,但 Xcode 和 Instruments / Allocations 似乎对所使用的内存量有非常不同的值。当我查看 Xcode 时,我看到类似的内容600 MB但是当我将相同的运行会话转移到仪器/分配时,我看到持久字节的数字非常不同,例如150 MB.
哪一个是正确的?为什么有区别?他们测量的东西不同吗?
(无论我是传输 Xcode 调试会话还是在 Instruments 中重新开始,似乎都没有太大区别。)
我关心的原因是 iOS 因内存使用过多而终止了该应用程序(根据 Xcode),但我似乎无法通过 Instruments 找到问题。
我尝试关闭所有 GPU 和 Metal 调试选项,但它们似乎没有什么区别。
哪一个是正确的?
我的直觉是:仪器。它使用 Dtrace 来(抱歉)检测您的代码并在发生时观察实际的分配和释放,但会牺牲性能。 Xcode 调试导航器内存图更像是一个外部视图,旨在提供对正在发生的情况的一般了解。这正是后者为您提供切换到前者的方法的原因 - 因为(仪器)是您获得真实测量结果的地方。
(但是,请记住,Instruments 可能无法将您看到的一些图形虚拟内存后备存储包含在总数中。有很多 WWDC 视频更详细地讨论了这个主题。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)