共计 2003 个字符,预计需要花费 6 分钟才能阅读完成。
作者:友盟 + 技术专家 谦翔
一、概述
利用性能监控平台是用来帮忙客户晋升利用性能品质和稳定性的重要环节,自己作为一名挪动端开发者有着丰盛的应用和运维教训,心愿通过本文分享过往的心得和应用教训,让我参加开发的 U -APM 这款产品中,作为借鉴能够在中长期布局中帮忙更多的开发者。
(以下内容仅作为稳定性监控平台这类平台的应用教训和心得,文中提及平台仅供参考)
二、产品受众
1. 理解他们
利用性能监控平台的使用者往往是站在挪动终端最火线的开发者,他们须要关注端的稳定性、用户性能、体验等方面。好的工具能够帮助他们在日常运维中的工作。
1.1 挪动开发者团队职责形成
此类产品的受众次要是挪动开发者,而挪动开发者开发者也会分为前端和客户端,别离依据本人所应用的技术栈个性进行职责调配,当然跨端技术的呈现也让边界不再那么清晰。
1.2 挪动开发者日常工作
开发者日常的工作职责次要分成两大部分开发和运维,开发中呈现的问题个别能够通过调试环境就能够定位解决,而运维阶段,线上的代码被压缩混同加密后变的难以辨认无奈间接定位问题。不同零碎、运行环境、网络状况和低质量的代码则会带来不可预知的性能问题,运维工作的量化汇报等等。这些都是挪动开发者们日常所面临的艰难。
1.3 场景演绎
如果把利用性能监控平台的应用场景分为上线前和上线后,大抵列举了以上场景。
1.4 利用性能监控平台
针对以上场景,市面上或者公司外部的利用性能监控平台绝大部分可能解决
2. 案例分享
上面我会联合下面提到的场景分享三个案例
2.1 案例 1(单设施谬误排查)
单设施谬误排查的场景对于值班人 / 开发者的要求很高,其在于排查工夫的紧迫性和对开发链路相熟以及排查工具的齐备性等。(此场景常见于重要客户或领导反馈)
2.2 案例 2(性能优化)
2.2.1 优化背景
● 技术栈:React Native
● 劣势:RN 领有一次编写三端执行和动静部署和逻辑下发到客户端的能力,解决客户端版本审核及更新效率低、三端开发技术计划不统一、三端公共需要存在重复劳动等问题
● 劣势:RN 执行阶段可分为 RN 加载阶段和 RN 运行阶段,相应的 RN 页面所面临的性能问题也不尽相同
2.2.2 RN 框架加载流程
为了更清晰的理解 RN 加载阶段的问题所在,咱们先来剖析下 RN 的加载机制
在进入整个 RN 页面的流程中,RN 框架加载会经验以下步骤:
● 包下载及解压缩:加载时发现本地没有对应的包文件,会先从服务器上下载并解压包的文件。
● 获取初始化引擎:RN 预初始引擎的性能,提前创立一个初始化好的引擎并缓存,缓存在退出页面 2 分钟之后开释。
● 加载业务包:向一个初始化好的引擎中,加载业务的 JS 代码。该环节受限于业务 JS 的大小及设施性能,该加载工夫广泛较长。
● 运行业务包:执行业务 JS 中 runApplication()办法,开始渲染 Native 页面。该环节受限于业务 JS 的复杂度及设施性能,如果首次渲染的组件很多,该加载工夫会变长。
2.2.3 RN 框架罕用指标和维度
● RN 加载阶段的性能优劣,最直观的感触就是页面加载耗时
● 所以 RN 技术在带来种种长处的同时,也在存在一些性能和体验问题,这须要一些优化伎俩和指标来撑持业务的稳固运行
不同的终端技术栈须要联合本身加载和运行的要害阶段,量身打造适宜本人的性能指标和维度。这能够让开发者监控页面加载和运行过程的每个环节,进行针对性优化。
2.2.4 优化过程 & 后果
问题发现
· 发现以上页面指标,页面加载工夫(90 分位)长时间处于 1.2s 左右高于要求的规范阈值 1s 以内
· 参考 RN 加载流程通过多维度筛查,发现很多用户是首次拜访该页面,下载代码包须要大量耗时,低网络更是如此,所以咱们须要提前用户下载 bundle 的机会,还有缩小 bundle 的大小。
解决方案
· 晓得问题所在就好办多了,咱们整顿了针对包大小优化,包预下载工夫等一系列的优化计划的组合拳,这里就不过多开展。
优化后果
· 优化后果:页面加载工夫(90 分位)缩小耗时至 0.5s
2.3 案例 3(汇报)
汇报工作形式个别分为两种报告和值班推送的模式,次要将所监控页面或者业务线重要的性能指标进行实时或定期追踪同步,不便负责团队进行下一步口头(比方:优化、谬误修复等)
网络促销日值班场景(某营销促销日 xxxx.xx.xx)
营销促销日前一周
● 汇总各挪动端团队负责的业务
● 列举各挪动端团队业务所笼罩的页面,确认监控是否笼罩
● 各团队技术值班负责人确认各技术栈(H5,Native,RN 等)数据指标和告警阈值并设置利用性能监控进行定时汇报推送值班群
● 各小组确定值班日安顿,实时跟踪值班群阈值异常情况,并及时响应。
以上是本期干货内容的介绍,心愿友盟 + 研发团队撰写的技术内容能够更好地帮忙开发者们解决问题,友盟 + 将陪伴开发者们一起提高,一起成长。敬请期待下一期内容。
扫一扫退出友盟 + 技术社群
与超过 1000+ 挪动开发者独特探讨挪动开发最新动静
欢送点击【友盟 +】,理解友盟 + 最新挪动技术
欢送关注【友盟全域数据】公众号