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

Hon*_*ney 6 xcode memory-leaks memory-management allocation xcode-instruments

我正试图在我的应用程序中找到内存问题.

当我使用Xcode的调试导航器来解决内存问题时,我发现应用程序的整体使用率有所增加.对于特定的流程,当我来回走动时,我看不到内存持续存在.

然而,如果我使用Allocations进行相同的流程和仪器,我确实看到3Mbs每次来回都会持续存在.

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

编辑:

所以我被告知差异是由于构建配置.好.但是,如果我去'编辑方案'并将构建配置更改为'release'并在我的设备上运行.那么我可以期待Xcode调试导航器的工作原理相同吗?或者仍有一些差异?如果是这样的话?

Mar*_*zyk 6

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

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

在此处输入图片说明

如果这不能解决您的问题,您将很难获得明确的答案。了解内部工作原理以及调试器和仪器之间差异的人是 Apple 工程师。


mat*_*att 2

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

绝对没错!正如我多次建议的那样(例如此处),您绝不能从调试导航器仪表中得出真正的结论。在模拟器的调试版本中,内存分配的工作方式完全不同。如果您想了解应用程序的内存如何工作,则必须使用 Instruments 才能获得发布版本,并且必须在设备上运行才能使内存使用情况反映真实情况。

但是如果我去“编辑方案”并将构建配置更改为“发布”...我可以期望 Xcode 调试导航器能够正常工作吗

绝对没有!发布意味着执行各种编译器优化,使调试器几乎无法使用。但这并不重要;您永远不会同时调试和使用仪器来测量任何东西。