【发布时间】:2019-05-11 21:30:14
【问题描述】:
我正在尝试调试为什么我们基于 SceneKit 的应用程序使用这么多内存,但 Xcode 和 Instruments / Allocations 似乎对正在使用的内存量有非常不同的值。当我查看 Xcode 时,我看到类似 600 MB 但是当我将相同的运行会话转移到 Instruments / Allocations 时,我看到持久字节的数量非常不同,例如 150 MB强>。
哪一个是正确的?为什么有区别?他们在测量不同的东西吗?
(无论我是转移 Xcode 调试会话还是在 Instruments 中重新开始,似乎都没有太大区别。)
我关心的原因是 iOS 因过度使用内存而终止应用程序(根据 Xcode),但我似乎无法通过 Instruments 找到问题。
我已尝试关闭所有 GPU 和 Metal 调试选项,但它们似乎没有任何作用。
【问题讨论】:
-
“他们测量的是不同的东西吗?”很有可能。测量设备上的发布版本。不要在模拟器中测量,也不要测量 Debug 版本,因为你会得到完全错误的内存使用信息。
-
谢谢马特,但我应该在我最初的问题中包括我已经尝试过调试和发布版本,并且与调试版本相比,每种情况下发布的数字都在 1-2MB 以内。我也只在设备上运行,从不在模拟器上运行,因为在模拟器上,SceneKit 性能不可用,也不支持 PBR。
-
好的,在这种情况下,我会说简单的答案是:相信 Instruments。