1

我正在使用 Instruments 工具来查找我的应用程序中的泄漏。在我的应用程序中检查泄漏时,我也可以看到分配选项卡。

到目前为止,我从未在工具工具中使用过该分配选项卡。我刚刚检查了它可能是什么,我能够看到#All Allocations * 字段。其中显示了应用程序使用的总字节数。我很震惊地看到尺寸不断增加。

我应该只担心内存泄漏而不是分配吗?#All 分配意味着当前应用程序大小或整体应用程序大小?

4

2 回答 2

2

分配对于显示您的应用程序内存占用很有用。如果您呈现一个 modalViewController 并关闭它(然后重复它),并且您看到您的应用程序活动字节不断增加,那么就有问题了。内存泄漏很有用,可以查看已分配的内存并且您丢失了对它的引用。使用 ARC 会有所帮助,但您仍然可能会出现内存泄漏(例如循环引用)。分配还可以帮助您了解内存在哪里分配而从未释放。例如NSArray,一堆你没有使用但你仍然活着的对象。对于您的问题:

1)你应该担心两者。

2)实时字节显示您当前的应用程序大小(虚拟内存)。总体应用程序大小,正是它所说的:“所选时间范围内的分配总数”。

你也可以检查这个

于 2012-11-15T08:39:14.117 回答
1

All Allocations 行在 Live Bytes 列下显示堆的当前大小,以及在 Total Bytes 列下分配的堆字节总数。如果分配 1 MB,则两列都将增加 1 MB。如果您随后释放该兆字节,Live Bytes 将减少 1 MB,但 Total Bytes 不会改变。

Live Bytes 对于检测废弃或泄漏的内存很有用。

总体字节数通常不是很有用。当您遇到性能问题并想查看它是否是由于过度分配流失时,您可能会使用它。

于 2012-11-15T09:23:26.610 回答