随着大量利用涌入市场退出“App 内卷之战”,终端用户们对利用品质的要求是愈发地挑剔。端上研发同学光关注解体类 bug 解决已无奈应答用户对 App 体验的诉求,很多用户也会反馈与性能无关的问题,比方 App 启动工夫太长、页面卡死、闪退等。随时线上用户诉求的进步,很多开发同学也从线下测试性能演变到更关注线上性能问题,以此保障用户体验。
友盟 + 利用性能监控平台 U-APM 从去年底收费上线后,失去行业泛滥开发者的接入和反对。友盟 + 也非常重视开发者面对应能监测的各类问题,在近几个月,基于原有稳定性性能优化的根底上,U-APM 又新增启动剖析、内存剖析、卡顿剖析三大性能模块,全面助力开发者晋升用户体验。
启动剖析
启动场景是用户应用 App 的第一道关卡,启动慢、启动闪退都会间接从源头阻断客户应用,甚至会造成启动不胜利新客户卸载的状况。很多技术团队都会以启动耗时作为重点性能监控指标。U-APM 中启动剖析蕴含启动趋势、慢启动剖析和启动解体剖析三大功能模块。
启动剖析反对通过预置采集和个性化自定义两种形式定义启动阶段,能够别离查问首次启动、冷启动、热启动的状况成果,并能够与设施、零碎、版本、地区等维度做穿插筛选查问。
用户也能够别离对首次启动、冷启动和热启动设置慢启动的业务定义。个别状况下,热启动的工夫要远低于冷启动、首次启动的工夫。慢启动剖析能够别离监控三种状况下的慢启动设施数量,以及设施零碎散布等信息,并且反对繁多设施定点查问启动时序,精准定位问题。
启动阶段的解体该当是日常开发中首要须要解决的问题,防止用户短时间遇到解体无奈持续应用。启动解体剖析中筛选出自定义的启动时限下的解体列表,更便于定位启动问题。
内存剖析
U-APM 的内存剖析提供线上 OOM 异样的监控与剖析,帮忙开发者及时发现与定位线上 OOM 问题。同时,提供 App 运行阶段内存占用状况,为利用内存优化提供要害指标数据。
在 Android 异样中,并不是所有的 OOM 问题都是能够简略查看谬误摘要是否蕴含 Out of Memory 就能够判断的。
此次内存剖析 OOM 异样的模块中,将外部积淀应用多年的智能诊断技术对外透出。能够通过智能读取谬误堆栈进行匹配,开掘到那些不是 OOM 但理论是由 OOM 引起的异样问题并加以聚类,OOM 异样的判断率间接晋升 20%~30%。iOS 利用此次也新增了 OOM 异样的捕捉。
内存占用模块中展现了内存要害指标信息,并且配以设施状况散布用作统计参考。还提供了渠道、版本、零碎、设施型号的散布状况。
卡顿剖析
U-APM 中通过主线程的响应工夫,将有卡顿体验的设施信息、卡顿日志进行上报。收费提供了 iOS 全副采集以及 Android 双端卡顿采集,且如此大量的日志数据不必按流量付费。
除此之外,如果开发者感觉一条条看谬误堆栈十分麻烦,能够应用 U -APM 利用聚合算法提供了卡顿模块的性能,约等于 1 分钟看到 200 条堆栈的内容,无效节俭开发者大量开掘问题的工夫。卡顿模块反对正序、倒序两种聚合模式:
•正序聚合:筛选影响用户量大的 200 个堆栈从栈顶到栈底进行聚合,帮忙客户开掘造成卡顿问题的最外围问题
•倒序聚合:筛选影响用户量大的 200 个堆栈从栈底到栈顶进行聚合,帮忙客户开掘造成卡顿问题的最外围问题
两种办法均展现呈现频率前 10 的模块,子树深度最多反对 50 层,帮忙客户下挖具体的卡顿模块信息
利用 OpenAPI 自助调用谬误数据
U-APM 后盾的谬误数据在开发者日常的业务中还有很多的利用。比方,定期将利用品质数据灌入技术组周报中发给公司各部门,或者在公司自有后盾中展现今日实时错误率等性能指标。此次新上的 OpenAPI 能够解决灵便获取利用采集的谬误数据的需要,反对实时 / 离线 90 天内的数据灵便调用,收费开明权限即可应用。
监控告警降级
U-APM 中的监控告警性能在近期做了多项降级,反对更灵便更个性化的监控告警设置。开发者除了应用调用 OpenAPI 的形式自行加工数据设置告警,应用 U -APM 后盾中的监控告警性能也更为不便:
a. 灵便设置告警失效工夫:
开发者能够增加告警失效的时间段,比方每周一至周五的 9 点至 19 点,周末的一 12 点至 20 点,灵便设置工作工夫,不被有效信息烦扰。
b. 重点谬误类型 / 单条谬误告警:开发者能够抉择须要您重点关注的谬误类型
或者间接针对某一条修复中的谬误进行继续关注告警
c. 组合模式的告警触发条件
开发者能够通过多种指标以及阈值型或者比照型的规定,以交加 / 并集的组合形式,灵便设置想要的告警触发条件:
d. 多种告警触达渠道
如果开发者还对监控告警的触达渠道有所要求,能够思考应用公司的办公软件进行群触达,与同组的其余共事一起关注并修复利用问题。
谬误捕捉降级
U-APM 近期的降级中对谬误捕捉的类型有大幅增多:
Android 反对 Java、Native 的解体采集;ANR;以及针对 Unity SDK 减少 c#、Lua 的谬误类型;
iOS 反对:Swift、Objective- C 解体的采集
除上述性能外,U-APM 在云真机的 UI 设计、API 上传符号表页面整体加载速度渲染等等性能上也进行了更新,详情及收费应用请至:https://www.umeng.com/apm?&ut…