SuperAPI AI 工具集

ohos-dev-distributed-mmi-ram-rom-measurement

通用与其它

查看项目

更新于 10-15 16:44

技能介绍

用途:衡量 multimodalinput 子系统代码变更前后的 ROM(二进制体积)与 RAM(运行时内存)占用变化,用于 PR 前量化体积影响、证明重构或新特性不引入内存膨胀,以及应对评审对 RAM/ROM 数据的要求。前置基础设施(编译部署、设备连接)见 ohos-dev-distributed-mmi-device-test-harness。

主要能力:要求从三个互相佐证的维度度量 RAM——ROM 段级(readelf -S,反映 .text/.rodata/.data/.bss 等静态映射)、RAM 实测(smaps + hidumper 真机采集)、RAM 理论(git diff 分析新增容器与结构体估算)。ROM 支持文件级快速对比与段级精确对比;RAM 支持进程级 smaps_rollup、按库 PSS 归因、hidumper --mem 系统级分类。

使用方式:先按代码变更确定影响面,覆盖 libmmi-server.z.so、libmmi-server-common.z.so、libmmi-util.z.so、libmmi-client.z.so 等受影响库与加载进程;ROM 用 readelf -S 分析关键段,基线可取自设备 .bak 文件或 CI 构建;RAM 采集用 $HDC shell "cat /proc/$(pidof multimodalinput)/smaps_rollup"、smaps、hidumper --mem,采集前必须执行完整功能路径以触发懒分配。基线获取需临时恢复 .bak 并重启,注意 RK3568 根文件系统挂载在 /,命令为 mount -o rw,remount /。

适用场景:提交 PR 前的体积量化、重构或新特性的内存影响评估、评审要求提供 RAM/ROM 数据。

限制:替换系统 .so、重新挂载读写、重启属破坏性操作,需用户明确批准、保留 .bak 并在结束时恢复设备;RAM/ROM 结论仅在记录基线来源、被替换库、功能路径执行情况、采集条件一致性时可比;不得只报 total PSS 或 .so mmap 增长,须拆分进程级分类、每个已加载 .so 增量、heap/anonymous 增量与未归因残差;测试框架新增加载的 .so 不得归因给目标特性;未执行功能路径会低估内存。详细估算规则见 references 目录,具体价格、平台与其他未提及细节暂未提供。