ios - 为什么 Xcode 会显示比 Instruments for SceneKit 应用程序更多的内存使用?

标签 ios scenekit arkit

我正在尝试调试为什么我们基于 SceneKit 的应用程序使用如此多的内存,但 Xcode 和 Instruments/Allocations 似乎对所使用的内存量有非常不同的值。当我查看 Xcode 时,我看到类似 600 MB 的东西,但是当我将相同的运行 session 转移到 Instruments/Allocations 时,我看到一个非常不同的持久字节数,比如 150 MB.

哪个是正确的?为什么不同?他们测量的是不同的东西吗?

(无论我是转移 Xcode 调试 session 还是在 Instruments 中重新开始,似乎都没有太大区别。)

Xcode screenshot Instruments screenshot

我关心的原因是 iOS 正在终止应用程序以过度使用内存(根据 Xcode),但我似乎无法通过 Instruments 找到问题。

我试过关闭所有 GPU 和 Metal 调试选项,但它们似乎没有什么不同。

Xcode debug scheme options enter image description here

最佳答案

Which one is correct?

我的直觉是:乐器。它使用 Dtrace 来(抱歉)检测您的代码并观察实际发生的分配和释放,但会牺牲性能。 Xcode 调试导航器内存图更像是一个外部 View ,旨在提供对正在发生的事情的非常普遍的了解。这正是后者为您提供一种切换到前者的方法的原因——因为那(仪器)是您将获得真实测量值的地方。

(但是,请记住,Instruments 可能无法将您看到的一些图形虚拟内存后备存储包含在总数中。有很多 WWDC 视频更详细地讨论了这个主题。)

关于ios - 为什么 Xcode 会显示比 Instruments for SceneKit 应用程序更多的内存使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53714864/

相关文章:

ios - 在 Spritekit 中隐藏/显示 iAd

iphone - 录制视频并同时播放视频

arrays - Scenekit 在将数组数据传递给 openGL 着色器中的统一数组时出现缓冲区大小错误

swift - RealityKit 中使用的相机的真实焦距是多少?

ios - 如何预加载 SCNAudioSource 以防止第一次声音播放时出现滞后?

ios - ARKit:position vs worldposition vs simdposition

scenekit - 使用 ARKit 将 SCNText 添加到 SCNScene

ios - 初始图像 Def​​ault-568h@2x.png 为 "unassigned"

ios - 引用 Objective-C 代码构建 Swift 框架

swift - 从 url 异步加载 anchor 不起作用