instruments 2

2022-08-12  本文已影响0人  f8d1cf28626a

Instruments 2

contr + comamnd + I

Allocations

Allocations主要包含4类统计项:

左边面板:筛选需要记录的Allocation,一般我们只勾选Created & Persistent

Statistics 统计项

主要包含6个统计字段,分别对应的含义如下

Call Trees 统计项

这个功能是将列表展示类型切换成调用树的形式,有3个统计项:

对应的在Call Trees下方还有三个配置项

【调用过滤】Call Tree:配置调用树的显示,一般勾选1、3、4、5

Data Mining:数据挖掘,简单来说就是可以过滤掉不看的库、符号调用,点击Symbol、Library会自动把你选中的行的符号、库加到小框中。例如选中start,点击symbol,就自动过滤了start相关列

其中Symbol(符号)和Library(库)有两个选项,即是否过滤改行,如果点击Restore会去掉小框中的选中行

Allocations List 统计项

Generations 统计项

在Allocation中,可以通过对每个动作的前后进行Mark Generation,用来对比内存的增加,可以定位到内存增加的具体方法和代码所在位置。其中有4列统计项

这个功能非常有用,通常用在:进入一个页面前mark一下,在退出这个页面的时候再mark一下可以比较哪些内容增加了,就可以具体分析哪些内存没有被释放。具体操作如下所示

从截图中可以看出Heap为26.02MB,VM是18.18MB,在程序有需要时能提供足够的内存空间,并不是现在创建的。因此手机分配给App的内存是44.02MB。

主要关注堆内存,所以按内存分类,并隐藏系统函数

从最上面可以看到堆内存+虚拟内存总共占了41.91MB,堆内存占了24.89M,虚拟内存占了17.02,点开箭头查看具体的函数,然后点进去就可以看到内存激增的代码了,然后可以进行相应优化。

上一篇 下一篇

猜你喜欢

热点阅读