我正在使用“工具”工具查找我的应用程序中的泄漏。在检查我的应用程序中的Leaks时,我也可以看到Allocation选项卡。
到目前为止,我从未在仪器工具中使用过分配选项卡。我刚检查了它可能是什么,我能够看到#All Allocations *字段。其中显示了应用程序使用的总字节数。看到尺寸不断增加,我感到震惊。
我是否应该只担心内存泄漏而不是分配? #All分配是否适用于当前应用程序大小或整体应用程序大小?
答案 0 :(得分:2)
分配对于显示App内存占用非常有用。如果你提出一个modalViewController并解除它(并重复它),并且你看到你的应用程序实时字节不断增加,那就有问题了。内存泄漏很有用,可以查看已分配的内存并丢失对它的引用。使用ARC有帮助,但您仍然可能有内存泄漏(例如循环引用)。分配还可以帮助您了解内存分配和永不释放的位置。例如,一个NSArray
个完整的对象,你没有使用,但你仍然活着。对于你的问题:
1)你应该担心两者。
2)实时字节显示您当前的应用程序大小(虚拟内存)。 总体应用程序大小,正是它所说的:"所选时间范围内的分配总数"。
您还可以查看this。
答案 1 :(得分:1)
All Allocations行显示Live Bytes列下的当前堆大小,以及在Total Bytes列下分配的堆字节总数。如果分配一兆字节,则两列将增加1 MB。如果你然后释放那个兆字节,Live Bytes将减少1 MB,但总字节数不会改变。
Live Bytes对于检测被遗弃或泄露的内存非常有用。
总体字节数通常不是很有用。当您遇到性能问题时可能会使用它,并且想要查看它是否是因为过度分配流失。