Native Memory抓取和展示说明

Native Memory是查看内存的分配和释放等情况

1.Native Memory的抓取

1.1.Native Memory抓取配置参数

GitHub Logo

配置参数说明:

再点击Record setting,在output file path输入文件名hiprofiler_data_nativememory.htrace,拖动滚动条设置buffer size大小是64M,抓取时长是50s
GitHub Logo

点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制
GitHub Logo

输入hdc_shell,进入设备,执行命令
GitHub Logo

执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件
GitHub Logo

2.Native Memory展示说明

将抓取的nativememory文件导入到smartperf工具中查看,查看内存的分配和释放等情况

2.1.Native Memory泳道图展示类型

点击齿轮状的图标可以设置内存的展示单位
GitHub Logo

2.2.Native Memory泳道图的框选功能

可以对内存的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有四个tab页
Statistics的Tab页,主要显示了统计明细类型
GitHub Logo

Call Info的Tab页,主要显示了调用树详细类型
GitHub Logo

Native Memory的Tab页,主要显示了单次分配信息列表
GitHub Logo

Snapshot List的Tab页,主要显示了各时刻内存的增长的差值
GitHub Logo

2.3.Native Memory的辅助信息功能

在Call Info和Native Memory的Tab页,点击选中某一行,右边画红线处会显示出该行调用栈的树结构信息
GitHub Logo

2.4.Native Memory详细显示的过滤功能

点击下方的All Allocations可以对Allocation的lifeSpan进行过滤,有三个选择:All Allocatios,Create & Exsiting,Create & Destroyed
GitHub Logo

点击下方的All Heap&Anonymous可以对内存类型进行过滤
GitHub Logo

点击下方的Mark Snapshot可以在时间轴上打标签。出现小旗的标志,通过标注多个时间点。点击到Snapshot List标签页可以看到各个时间点的内存的增长值
GitHub Logo

2.5.Native Memory的火焰图功能

点击callinfo左下角的柱状图的图标,会切换到火焰图页面
GitHub Logo

进入到火焰图页面,火焰图的展示跟Callinfo的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称和size大小
GitHub Logo

鼠标左键火焰图,会进入下一级界面,右键回到上一级
GitHub Logo