介绍:应用性能监控平台是帮助客户提升应用性能、质量和稳定性的重要环节。作为一名移动端开发者,拥有丰富的使用和运维经验,希望通过本文分享自己以往的心得和使用心得,让我参与到U-APM产品的开发中,可以作为帮助更多开发者进行中长期规划的参考。作者:友盟+技术专家千翔一、概述应用性能监控平台是帮助客户提升应用性能、质量和稳定性的重要环节。作为一名移动开发者,有着丰富的使用和运维经验。希望通过这篇文章分享我过去的心得体会,让我参与到U-APM产品的开发中,可以作为参考,帮助更多的开发者进行中长期规划。(以下内容仅是稳定性监测平台等平台的使用心得体会,文中提及的平台仅供参考)二、产品受众1、了解其应用性能监测平台的用户往往走在前列对于移动端开发者来说,需要关注端的稳定性、用户性能、体验等方面。好的工具可以帮助他们进行日常操作。1.1移动开发团队职责这类产品的受众主要是移动开发人员,移动开发人员也分为前端和客户端,根据所使用的技术栈的特点分别分配职责。当然,跨端技术的出现,也让界限不再那么清晰。1.2移动开发者的日常工作开发者的日常职责主要分为开发和运维两部分。开发中的问题一般可以通过调试环境来定位和解决。在运维阶段,线上代码被压缩、混淆和加密,后者变得难以辨认,无法直接定位问题。不同的系统、运行环境、网络状况、低质量的代码都会带来不可预知的性能问题、运维工作的量化报表等等。这些都是移动开发者每天都要面对的困难。1.3场景总结如果将应用性能监控平台的使用场景分为上线前和上线后,大致罗列了以上场景。1.4应用性能监控平台针对以上场景,市面上或公司内部的应用性能监控平台大多可以解决。2、案例分享下面我结合上面提到的场景分享三个案例。2.1案例一(单机报错排查)单机报错排查场景对值班人员/开发人员的要求较高,表现为排查时间的紧迫性、对开发环节的熟悉程度、排查工具的完备性。(这种场景在重要客户或领导的反馈中经常看到)2.2案例2(性能优化)2.2.1优化后台技术栈:ReactNative优势:RN有能力编写三端执行和动态部署逻辑下发到客户端一次,解决客户端版本审核更新效率低,三端开发技术方案不一致,三端公用需求重复劳动。缺点:RN执行阶段可分为RN加载阶段和RN运行阶段,对应RN页面面临的性能问题2.2.2RN框架加载过程为了更清楚的理解RN加载阶段的问题,我们先来分析一下RN的加载机制。在进入整个RN页面的过程中,RN框架加载会经历以下几个步骤:包下载解压:加载时,如果本地没有对应的包文件,会先从服务器下载包文件并解压。获取初始化引擎:RN预初始化引擎的功能,提前创建一个初始化引擎并缓存,退出页面2分钟后释放缓存。加载业务包:将业务JS代码加载到初始化引擎中。这个环节受限于业务JS的大小和设备的性能,加载时间一般比较长。运行业务包:执行业务JS中的runApplication()方法开始渲染Native页面。这个环节受限于业务JS的复杂度和设备性能。如果第一次渲染的组件比较多,加载时间会比较长。2.2.3RN框架的常用指标和维度RN加载阶段的性能最直观的感受就是页面加载耗时,因此RN技术在带来各种优势的同时,也存在一些性能和体验问题,需要一些优化手段和指标来支持业务的稳定运行。这使得开发人员可以监控页面加载和运行过程的各个方面,以进行有针对性的优化。2.2.4优化过程&结果问题发现:发现有以上页面指标,页面加载时间(90thpercentile)长期在1.2s左右,1s以内高于要求的标准阈值。参考RN加载过程进行多维筛选,发现很多用户都是第一次访问这个页面,下载代码包很费时间,尤其是网络低的时候,需要提前用户下载捆绑包的时间并减少捆绑包的大小。解决方案:知道问题就容易多了。针对包大小优化、包预下载时间等我们整理了一系列的优化方案,这里不再展开。优化结果:优化结果:页面加载时间(90thpercentile)降低到0.5s2.3案例三(举报)举报工作方式一般分为举报和值班推送两种形式,主要是监控页面或者业务线重要性能指标实时或定期跟踪同步,方便负责团队进行下一步操作(如:优化、错误修复等)网络推广日值班场景(某营销推广日xxxx.xx.xx)总结营销推广日前一周的每一个动作端团队负责业务列出各移动端团队业务覆盖的页面,并确认监控是否覆盖每个团队技术值班组长确认各技术栈(H5、Native、RN等)的数据指标和告警阈值,设置应用性能监控定时上报并推送值班组各团队确定排程值班日,实时跟踪值班组门槛异常情况,及时响应。以上就是本期内容的介绍。希望友盟+研发团队编写的技术内容能够更好的帮助开发者解决问题。友盟+将陪伴开发者共同进步,共同成长。敬请期待下一期。原文链接本文为阿里云原创内容,未经许可不得转载。
