我正在使用Instument的ObjectAlloc工具来了解我的应用程序(iPhone)正在做什么以及何时何地在做什么。
我真的希望对这些统计数据有一个基本的解释:
- 实时字节
- #活的
- #暂时的
- 总字节数
当我尝试确定应用程序正在使用多少内存时,我应该查看活动字节还是总字节?这包括内存泄漏吗?什么是暂态对象?
谢谢
Answers:
ObjectAlloc
跟踪程序运行期间的所有内存分配和释放。
该Living bytes, or Net bytes
是多少记忆您的应用程序在你的时间表选择时间使用。这将包括泄漏的内存,因为泄漏的内存永远不会被释放。
#Living
是某个特定大小/对象类型的分配发生了多少(并且仍在分配中)。查找泄漏时,这非常有用。
例如,如果您重复执行一个动作(例如从模态视图控制器中出来),并且#Living
每次看到一个对象的增长量相同,则可能是这些对象泄漏了。然后,您可以通过向下钻取并查看分配对象的确切代码行来进行确认,甚至可以看到每个对象的创建时间索引。
Overall bytes
包括已释放的内存。跟踪该数字以进行性能优化非常有用,但如果您只是想查看当前的内存占用空间或查找泄漏,则不会有用。