iOS性能分析-Xcode Instruments Allocations 分析APP内存使用情况

本文详细介绍内存管理中的关键概念,如AllHeap, AnonymousVM, Persistent和Transient对象,以及如何使用Statistics, CallTrees和AllocationsList等工具进行内存分析。通过Generations统计项,可以对比不同时间点的内存增长情况,定位导致内存泄漏的代码位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

All Heap & Anonymous VM 堆内存+虚拟内存 All Heap Allocations 堆内存 All Anonymous VM 虚拟内存

# Persistent 表示在内存中的 object 的数量,正在使用的内存

# Transient 表示存在过但是目前已被销毁的 object 的数量,其占用的内存已被释放

1、Statistics统计项

category:对象、内存块类别 # Persistent 表示在内存中的 object 的数量,正在使用的内存

# Transient 表示存在过但是目前已被销毁的 object 的数量,其占用的内存已被释放

2、Call Trees统计项

symbol name:方法名称 count方法被调用的次数

3、Allocations List统计项

address:内存块的地址

4、Generations统计项

Snapshot:快照名 Timestamp:快照时间 HeapGrowth:自从上次快照以来的增长数量

可以对每个动作的前后进行Generations,对比内存的增加,查看使内存增加的具体的方法和代码所在位置。 在右侧Generation Analysis里点击Mark Generation,会产生一个Generation,切换到其他页面或一段时间产生了另外一个事件时再点Mark Generation来产生一个新的Generation,这样反复,生成多个Generation,查看这几个Generation会看到Growth的大小,可以点进去查看相应占用较大的线程里右侧Heaviest Stack Trace里查看对应的代码块,然后进行相应的处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值