iPhone:Xcode,乐器,内存分配。什么是合理的?

时间:2011-06-10 19:01:13

标签: iphone objective-c xcode memory-management instruments

我正在使用乐器来分析我正在开发的iPhone应用程序中的内存使用情况。我想知道,什么是合理的内存分配大小?

当我获得目标信息时,我想检查方框是否忽略“NS”,“CF”和“Malloc”前缀?当我不忽略它们时,我得到的启动时整体字节值似乎是一个相当大的值,大约47MB,尽管实时字节只有大约6MB。当我忽略前缀时,我将获得大约1MB的总体和350KB的直播。忽略或不忽略前缀的理由是什么?这里,整体字节和实时字节有什么区别?

最后,如果需要,我可以在哪些方面减少应用程序的内存占用?

1 个答案:

答案 0 :(得分:5)

忽略NS,CF或Malloc的复选框仅允许您过滤到总分配的不同子集。是否检查它们取决于您要查找的内容。显然,将它们全部取消选中会给你最全面的视图,但是如果你正在寻找特定的东西,你可能想忽略其他类别。

“实时”数据是尚未发布的,而“整体”是您分配的所有内容,即使它已被释放。

请注意,“分配”工具仅为您提供了已使用的堆内存的视图。这很窄。您的应用程序也会直接或间接地使用内存来处理其他内容。此外,内存碎片可能会导致您的总内存使用量远高于分配工具中显示的内存碎片,因为操作系统以4k页提供内存。

您应该使用VM Tracker工具查看应用程序的总内存使用情况。