在所有仪器跟踪模板中,我喜欢使用:
- 用于检测对象过度释放的位置的僵尸,非常适合调试
EXEC_BAD_ACCESS
错误。 - 泄漏以检测内存泄漏。
- 核心动画和颜色混合层可检测帧速率和半透明 subview ,非常适合平滑
UITableView
滚动。
我总是听到人们说要分析我的应用的内存使用情况和性能。
- 为什么我应该分析内存使用情况和性能?我的应用程序运行良好。
- 我该怎么做?
我使用了分配,发现我的 iPhone 应用程序从 1 MB 的总分配内存开始,在正常使用后增长到 5 MB。 iPhone 内存使用量过高是什么情况? iPad?麦克?
最佳答案
要回答其中的原因,分析内存使用情况对于 iOS 应用尤其重要,因为 iPhone 和 iPad 的 RAM 比 Mac 少得多。 iPhone 4 拥有 512 MB RAM,但早期版本只有 256 或 128 MB。考虑到操作系统使用的 RAM 和多任务处理,您的应用不会浪费太多 RAM,因此了解您的应用使用了多少内存非常重要。
当您的应用程序运行缓慢时,您通常会进行性能分析。对它进行分析以查找代码中的慢点,以便使代码运行得更快。如果您的应用运行良好,则无需过多分析性能。
要回答这个问题,请使用分配工具来测量内存使用情况。所有分配类别中的实时字节列告诉您应用程序当前使用的内存量。分配工具的堆快照分析可测量应用程序中的内存增长情况。使用跳转栏左侧的菜单进行堆快照分析。
Time Profiler 工具可以分析您的应用程序的性能。使用 Time Profiler 仪器的困难部分是解释结果。 Time Profiler 工具不会告诉您您的应用程序将 75% 的时间花在 Function X 上。您必须深入挖掘数据才能找到代码中的慢点。
关于可接受的内存使用量,这取决于您想要支持的设备和应用程序。像 Xcode 这样的应用程序使用 100 MB RAM 就可以了,但是像 TextEdit 这样的应用程序在一页文档中使用 100 MB 内存就会出现问题。对于 iOS 应用程序来说,5 MB 应该不成问题。
关于xcode - 如何使用 Instruments 分析内存使用情况和性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6641540/