Xcode 的 Debug Navigator 是否与 Instruments 分配不同?

Does Xcode's Debug Navigator work different from Instruments allocations?

我正在尝试查找我的应用程序中的内存问题。

当我使用 Xcode 的调试导航器解决内存问题时,我发现应用程序的整体使用率有所增加。对于一个特定的流程,当我来回走动时,我没有看到内存被持久化。

但是,如果我使用分配通过相同的流程和工具,我确实会看到每次来​​回时都持续存在 3Mbs。

Xcode 的调试导航器是否不可靠,或者他们正在测量不同的东西或其他东西?!

编辑:

所以我被告知不同之处在于构建配置。好的。但是,如果我去 'edit scheme' 并将构建配置更改为 'release' 和 运行 在我的设备上。然后我可以期望 Xcode 调试导航器工作相同吗?或者仍然存在一些差异?如果是什么?

Xcode 的默认行为是在 运行 您在 Xcode 中的项目时使用调试版本,在 Instruments 中分析项目时使用发布版本。调试和发布版本的内存使用量可能不同。

您可以从 Xcode 的方案编辑器中检查和更改构建配置。

如果这不能解决您的问题,您将很难获得明确的答案。知道调试器和仪器之间的内部工作原理和区别的人是苹果工程师。

Is Xcode's debug navigator not reliable or they're measuring something different

绝对是的!正如我在这里多次建议的那样(例如 ),你必须 永远不要 从调试导航仪中得出真正的结论。在模拟器的调试版本中,内存分配的工作方式完全不同。如果您想知道您的应用程序的内存如何工作,您必须使用 Instruments 以便获得发布版本,并且您必须 运行 在设备上以便您的内存使用情况反映真实世界的情况。

But if I go and 'edit scheme' and change the build configuration to 'release' ... Can I then expect the Xcode debug navigator to work the same

绝对不会!发布意味着执行各种编译器优化,使调试器几乎无法使用。但这没关系;你永远不会同时调试 使用 Instruments 测量任何东西。