要回答这个问题,分析内存使用情况对于iOS应用尤其重要,因为iPhone和iPad的内存少于Mac。 iPhone 4有512 MB的RAM,但早期版本有256或128 MB。操作系统使用的RAM和多任务的因素,而且您的应用程序没有太多RAM浪费,因此了解应用程序使用多少内存很重要。
分析性能是您通常在应用程序运行缓慢时执行的操作。将其配置为在您的代码中查找缓慢点,以便您可以使代码运行得更快。如果您的应用运行良好,则无需进行性能分析。
要回答这个问题,请使用Allocations工具来测量内存使用情况。 All Allocations类别中的Live Bytes列会告诉您应用程序当前正在使用的内存量。分配工具的堆积分析可以测量应用程序中内存的增长。使用跳转栏左侧的菜单进行堆积分析。
时间分析器仪器会分析您的应用程序的性能。使用Time Profiler工具的难点在于解释结果。 Time Profiler工具不会告诉你,你的应用程序在Function X中花费了75%的时间。你必须仔细查看数据才能找到代码中的缓慢点。
关于可接受的内存使用情况,取决于您想要支持的设备和应用程序。像Xcode一样使用100 MB RAM的应用程序可以,但像TextEdit这样的使用100 MB单页文档的应用程序会成为问题。对于iOS应用程序,5 MB不应该是一个问题。
谢谢你给出这样一个全面的答案! :) – ma11hew28
我发现分配仪器是误导,当涉及到我的应用程序真正使用多少内存。它往往会使数字远低于实际的内存使用量。内存管理器仪器将为您提供您的应用程序在实内存列中使用的实际内存量。我正在开发一个OpenGL游戏,并且正在获取低位内存警告。配额说我只用了12M的内存,内存管理员说我用的是100M。所以,你去了。 – Ian
@Ian参见http://stackoverflow.com/a/8797272/287403看起来好像活动字节更加准确,因为内存工具中的“真实内存”列继续显示您很久以前发布的模块,而且操作系统并未没有回收。另请参阅http://stackoverflow.com/a/7574959/287403,其中我相信整体字节应该更接近'真实内存' –