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