我正在使用Instrument的ObjectAlloc工具,试图了解我的应用程序(iPhone)使用内存的情况以及何时、何地使用。
我需要一个关于以下统计数据的基本解释:
- 实时字节数(Live Bytes)
- 存活对象数(#Living)
- 瞬态对象数(#Transitory)
- 总字节数(Overall Bytes)
当我尝试计算我的应用程序使用了多少内存时,我应该查看实时字节数还是总字节数?这是否包括泄漏的内存?什么是瞬态对象?
谢谢。
我正在使用Instrument的ObjectAlloc工具,试图了解我的应用程序(iPhone)使用内存的情况以及何时、何地使用。
我需要一个关于以下统计数据的基本解释:
当我尝试计算我的应用程序使用了多少内存时,我应该查看实时字节数还是总字节数?这是否包括泄漏的内存?什么是瞬态对象?
谢谢。
ObjectAlloc
跟踪程序运行期间的所有内存分配和释放。
活动字节或净字节(Living bytes, or Net bytes)
是在选定时间轴上您的应用程序正在使用的内存量。这将包括泄漏的内存,因为泄漏的内存永远不会被释放。
#Living
是某个大小/对象类型的分配次数(仍然分配中)。当寻找泄漏时,这非常有用。
例如,如果您重复执行某个操作(例如进出模态视图控制器),并且您看到一个对象的#Living
每次都增加同样的数量,那么您可能正在泄漏这些对象。您可以通过深入了解并查看分配对象的确切代码行甚至看到每个对象创建的时间索引来确认。
总内存
包括已经释放的内存。跟踪该数字有助于性能优化目的,但如果您只想查看当前内存占用或查找泄漏,则不适用。