带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(4)https://developer.aliyun.com/article/1340940?groupCode=taobaotech
这个变动毫无疑问是巨大的,也给 APM 在与业务低耦合的情况下,带来了更大的灵活性,例如,详情打开后会有一个全局遮罩的鱼骨图,对鱼骨图打标后,然后配合图片库打标,详情的页面加载准确性大幅提升
通过线下测试可以发现,详情的鱼骨图遮罩时间较长,在遮罩过程中会进行页面加载,如果不对鱼骨图进行打标, 那么 APM 计算出来的加载时长与用户体感加载时长差距较大。下图是详情页面校准前后的线上数据,我们可以发现 7 月到 8 月线上数据有一个非常明显的数据跃迁:
通过给 View 打上是否合法的 tag,除了给 APM 带来了灵活性,也给业务带来了更大的自主性。对于高度复杂的业务来说,依旧存在自定义页面的结束时间的诉求,但是这种自定义结束时间并不是直接给 APM 塞一个时间戳,而是在自身页面加载逻辑完成之时,给 View 一个标记,标记此 View 完成了加载。例如,对于直播来说,他们需要的页面加载耗时,并不是直播页面的首帧,而是等待指定的直播小组件加载完成才算完成。如此高度定制的需求只需要做两步就可以完成:
- 在创建 View 树的时候,在根 View 上打上非法标记
- 当直播小组件加载完成,将根 View 上的非法标记改成合法标记
这是线上数据,APM 在校准上线后,发现更为符合业务方诉求与预期:
设置页面加载阈值
是否任意一个页面都适合同一加载阈值呢?答案当然不是的。
页面的布局、机型的适配直接影响着页面加载的比例,所以页面加载的上限在不同的页面中,也应该是不同的。在线下测试中发现,有些页面加载在某些手机上勉强了达到 80% 的阈值,有些手机上一直达不到,造成大量数据计算不成功。
基于以上考虑,APM 提供了设置单个页面加载阈值的口子,通过配合校准的各种改造,页面的加载时长准确性大幅度提高,同时 Android 的计算成功率也飙升。
errorCode = 0 表示计算成功,由 12% 上升到 78%
带你读《2022技术人的百宝黑皮书》——APM 页面加载耗时校准(6)https://developer.aliyun.com/article/1340938?groupCode=taobaotech