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

joh*_*ohn 3 iphone xcode memory-management objective-c instruments

我正在使用仪器分析我正在开发的iPhone应用程序中的内存使用情况.我在想,合理的内存分配大小是多少?

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

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

小智 5

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

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

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

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