我被要求尝试减少应用程序代码中的内存使用。应用程序在模拟器中运行良好,但在设备上它被终止或什么的,当调试它进入'暂停'状态,应用程序在设备上关闭。
当运行仪器时,我发现了泄漏,修复了它们,但是有大量的分配正在进行。在启动后的几秒钟内,仪器分配跟踪显示"Malloc 16字节"为1,021 KB。这基本上是无用的信息,我需要看到内存被分配到哪里,但我似乎找不到任何有用的信息。我所能得到的更深入的检查是'dyld', 'libsystem_c. c. 'dylib"、"libCGFreetype.A。Dylib '等都分配了很多,但负责的调用者从来都不是应用程序源代码中可识别的方法。
我怎样才能看到哪些方法在这里导致了最多的分配?我得把这个用量降下来!谢谢你
打开扩展细节视图将显示内存分配的调用堆栈。选择"视图>扩展详细信息"打开扩展详细信息视图。
切换到调用树视图将帮助您找到在代码中分配内存的位置。
1MB没什么大不了的。如果不使用1MB,您就无法提供完整的视图。
在WWDC 2010 (http://developer.apple.com/videos/wwdc/2010/)上有一个很好的视频,介绍了使用工具来分析内存使用情况。题目是用仪器进行高级记忆分析。可能有2011年更新的视频