QAPM 的监控功能有哪些?
QAPM 目前的监控功能有:电量指标&个例、机型、文件 I/O 个例、实时资源、卡顿指标、卡顿个例&聚类、内存指标、内存个例、DB I/O 个例、Crash 指标&个例&聚类、启动耗时。
QAPM 怎么使用启动耗时?其他的窗口打开速度也可以监控吗?
QAPM 提供了简单的 API,需要您设置插入开始端及结束端,然后插入我们提供的代码,就可监控 App 的启动耗时。Android App 由各种 Activity 组成,您仅需新增一行代码调用,QAPM 可以为您展示全部 Activity 的打开速度。
QAPM 的性能消耗如何?
接入 QAPM 对各使用机型造成的性能消耗被控制在一定的可接受范围内,尤其是我们推荐的正式发布使用的配置,性能消耗极低。在接入手机 QQ 等大用户量产品时,均是跟随外网发布,有过亿用户的检验。如下表为部分机型数据展示。
iOS SDK
机型 iPhone 8 | 核心功能(推荐正式发布使用) | 高级功能(推荐研发流程与灰度使用) | ||||
---|---|---|---|---|---|---|
卡顿监控 | VC 泄漏监控 | 大块内存分配 | 触顶率监控 | Sigkill | 内存泄漏检测 | |
CPU | 2% - 3% | <1% | <1% | <1% | 6 - 12% (包含内存堆栈采集) | 60 - 80% (检测过程中) |
内存 | 2.30MB | 5.11MB | 2.61MB | 2.50MB | 11.5MB | 14MB |
流量 | 4KB | 3KB | 3KB | 0.8KB | 3.5KB | 2.47KB |
Android SDK
机型 小米4 | 核心功能(推荐正式发布使用) | 高级功能(推荐研发流程与灰度使用) | ||||
---|---|---|---|---|---|---|
卡顿监控 | 内存泄漏 | 触顶率监控 | 掉帧监控 | 文件 IO 监控 | 电量监控 | |
CPU | 0.03% | <0.35% | <0.15% | <0.03% | 1.25% | 0.10% |
内存 | 8.8KB | 4.3KB | 7.56KB | 9KB | 5.8KB | 14KB |
启动耗时 | 22ms | 16ms | 21ms | 20ms | 24ms | 21ms |
为什么配置白名单?
这样的好处是可以确保翻译。 因为我们翻译是只翻译 top7 用户量的版本,研发流程内使用的话,需要配置白名单才能确保翻译。如果配置白名单的用户 QAPM 将会记录用户每一次的操作数据,另外配置白名单之后可以看到一些翻译了且有价值的上报。
卡顿聚类是根据什么维度聚类的?总耗时,平均耗时,各种占比的意义是什么?
卡顿聚类是按照堆栈的每一层级函数聚合的。
总耗时是函数在每20ms采样的次数20ms得出的(例如,A 函数在我们上报中出现了6次,那么耗时120ms)。
平均耗时是总耗时除以上报次数。
上级占比:耗时占父函数占比。
版本占比:耗时版本总量占比。
Crash 用户影响范围:遇到 Crash 的用户数/用户数。
内存触顶上报的时候会标出具体的场景吗?
与场景无关,无法获取 App 具体业务的场景,仅用来统计高内存使用用户的比率信息。
开发环境下使用了 QAPM.All,但卡慢个例下 DB 异常,IO 异常没有数据,为什么?
DB 异常、IO 异常功能对 Android 7 以下手机有效, 请确认下手机版本。
内存指标下的内存触顶率没有数据?
内存触顶率数据要内存超标后才会上报。(触顶率:内存虽然没有达到耗尽,但是处于85%最大内存阈值的几率。被抽样命中的用户每次内存高过85%内存阈值都会触发上报。算法是“发生触顶的人数除以被采样算法命中的人数”。)
符号表文件 mapping.txt 文件,什么时候需要上传?
如果您开启混淆编译,则会生成这个文件;如果您不开启,则不需要设置,直接就是明文。