MTK平台抓取、拆解内存的方法及脚本说明

一、统计方法说明

统计各进程的内存占用有两种方式:

  1. dumpsys meminfo processname
  2. heap+ion

测试工具大概率会使用第一种方式抓取数据,但是内存占用的详细拆解,需要针对heap+ion的方式进行拆解

二、ion数据

数据抓取

cat d/ion/ion_mm_heap 或 /proc/ion/ion_mm_heap 节点获取Ion的映射信息

数据拆解

MTK有一个解析ion buffer的脚本叫"ion_view_vxx.py"。解析思路如下:

  1. 先从如下格式的内容中拆解出client(即进程名)、size、pid等基本信息:
            buffer  heap_id     size kmap ref hdl mod mva_cnt mva(dom0) mva(dom1) sec flag pid(alloc_pid) comm(client)   v1   v2   v3   v4 dbg_name
time 4 8564945 ms
0x000000004a9f889d    12  2359296   0   2   1  -1   1 5c100000(0) 0(0) 0x0, 0x3,   980(  980)  camerahalserver 0x43 0x61 0x6d 0x0 2359296x1-BLOB-Stuff:Hal:Image:STT_main1:1_Blob

解析脚本:

re_buf_list5    = re.compile('^(0x[0-9a-f]+)\s+[-\d]+\s+(\d+)\s+[-\d]+\s+[-\d]+\s+[-\d]+\s+[-\d]+\s+[-\d]+\s+(\S+)\(\S+\)\s+\S+\(\S+\)\s+\S+\s+\S+\s+(\d+)\(\s*(\d+)\)\s+(\S+)\s+\S+\s+\S+\s+\S+\s+\S+\s+(\S+.*)')
符号 含义 对应字串中的内容
(0x[0-9a-f]+) 0x字串+多个十六进制数字的重复,并可以使用group(1)获取对应值 0x000000004a9f889d
\s+ 多个空白符
[-\d]+ 多位十进制数 12
\s+ 多个空白符
(\d+) 多位十进制数字,并可以使用group(2)获取对应值 2359296
\s+ 多个空白符
[-\d]+ 多位十进制数 0
\s+ 多个空白符
[-\d]+ 多位十进制数 2
\s+ 多个空白符
[-\d]+ 多位十进制数 1
\s+ 多个空白符
[-\d]+ 负号或数字的多位重复 -1
\s+ 多个空白符
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值