上云之后,企业如何降成本?速查《云原生成本管理白皮书》找答案>> 了解详情
写点什么

性能优化之老生新谈:飞一般的 iPad

  • 2020 年 5 月 09 日
  • 本文字数:2034 字

    阅读完需:约 7 分钟

性能优化之老生新谈:飞一般的iPad

随着移动互联网玩法的不断升级,性能优化变得越来越重要。在追求移动端 APP 体验的背后,需要在性能方面做到极致。本文通过对优酷 iPad 在启动耗时、核心页面加载耗时、页面帧率等方面的优化,验证了性能优化在提升用户体验的同时,拉升了高活用户占比。


一、写在前面

在相同的系统 iOS 下,iPhone 和 iPad 有着不同的用户群体,导致同一 APP 的不同终端,机型占比相差甚远。对于优酷 iPhone 和优酷 iPad 而言,按设备的硬件性能、系统版本分析,用户分布差异较大,迫使优酷 iOS 的同一功能在 iPad 的降级力度大增。比如 2019 年双 11 猫晚直播间,优酷 iPad 端除了能看“简洁”的直播和简单的文字评论外,还不能参与其他直播互动。


优酷 iPad 低端机型占比在三成左右,为了提升低端机型的用户体验,性能优化不失为一种较高投入产出比的方案。


二、优化策略

性能优化开工前,我们对现状做一次全方位摸底,采取“靶向策略”,逐个进行优化。具体步骤如下图:



1)指标收集:结合用户行为分析,排序业务场景,根据场景优先级,结合客诉等数据,逐个场景分析性能痛点,搜集性能指标。然后根据时间安排、人力投入等筛选出一级指标、二级指标;


2)行业分析:确定技术指标后,与同类 APP 进行指标的性能对比。根据性能差异和投入产出比,进行技术立项;


3)目标制定:结合业务,分析性能漏斗,得出各项性能天花板及初步优化方案,制定合理的技术指标目标;


4)逐个击破:性能折损漏斗深度分析,根据折损漏斗和瓶颈,进行折损点排序,从高优折损点逐个优化;


5)分桶实验:验证某个优化的可行性和效果,排除干扰因素;


6)灰度验证:结合分桶实验,灰度上线验证优化后的效果;


7)纠偏补漏:根据灰度后的数据分析,纠偏优化手段。步骤 4~7 反复进行,逼近目标值;


8)数据分析:完成各项指标,并留意和分析性能优化对各项业务指标的影响;


9)汇报总结:图表形式汇报总结,项目交差;


10)沉淀传承:输出文档或技术博客,供他人学习或借鉴。


三、前期准备

性能指标因机型差异而制定相应的目标值,根据优化基线和目标值应该选出不同分级的代表机型,确定统计口径,所以在开工前,我们需要做以下几点:


  1. 机型分级



根据机型分布、机型内存占比、机型 Abort 占比等信息进行 iPad 机型分级,将所有设备划分四个等级:高、中、低、超低端机型。


  1. 实验室测试设备


机型系统版本评分(安兔兔)分类标准
iPad Pro(10.5inch)11.3186972
iPad Air 210.3.3107239终端
iPad mini 39.3.569442低端
iPad mini9.3.545575超低端


结合各机型的用户占比和评分,选定高、中、低、超低端机型代表,供实验室测试使用。


  1. 统计口径和优化基线


与 QA 和各端约定统计口径,便于横向、纵向对比。根据统计口径进行实验室数据采集,并结合同行 APP 性能分析,确定各项优化指标和目标值




  1. 性能工具和平台


工具接入:掌中测(性能分析工具)、诺贝尔(分桶实验)、ImageOptim(图片压缩)。


平台接入:CTM 代码覆盖平台、baymax 平台、APM 数据平台、竞品分析工具。


  1. 目标制定


时间内低端机型(iPad mini3)启动耗时低至秒;播放页加载耗时低至秒;重要页面的帧率达到 FPS。


  1. 人力安排和规划


根据 2.4~2.7 的步骤按版本制定计划,并协调好测试资源。


四、优化实践

  1. 启动耗时优化


启动优化宏观层面有三大抓手:pre-main 阶段 -> 启动项阶段 -> 首屏渲染阶段;微观层面因业务差异而千差万别。


启动阶段优化策略
premain
有效方案:load 方法优化、去动态库化、包瘦身
启动项启动项梳理:划分主启动项和闲时启动项
基于 instrument 工具定位耗时方法(阈值:50ms),各个击破
首屏渲染UITabbarController 的子控制器懒加载
预初始化:闪屏阶段初始化首页
缓存机制:缓存首页数据
缓存预加载机制:首页初始化时异步加载缓存
懒加载机制:控件使用时再加载
降级策略:低端机型功能、视觉降级
耗时优化:基于 instrument 定位耗时方法(阈值:30ms),各个击破


  1. 播放页加载优化


抓手方案
缓存策略UPS 缓存
CDN 缓存
预请求策略播放页数据预请求
降级策略低端机型阉割部分次要功能


  1. 频道、热点加载优化


抓手方案
频道管理策略基于 LRU 的频道管理机制
缓存策略频道数据缓存
预加载策略频道预加载
频道数据预加载
分页预加载
异步策略数据异步处理
异步渲染


  1. 帧率优化


抓手方案
预加载策略页面数据预加载
异步策略数据异步处理
异步渲染
降级策略
其他策略耗时方法优化


五、数据对比

  1. 启动/加载耗时优化前后对比




通过上图,优化前后各类耗时都有明显提升,尤其是播放页的热启动耗时。优化后的低端机型各项耗时指标远超选定的两款同类 APP 对应指标。


  1. 帧率优化前后对比




通过上图,优化前后低端机型各页面的帧率有明显提升,接近中、高端机型帧率,且远超选定的两款同类 APP 对应页面帧率。


  1. APM 大盘数据(优化前、后)


1)启动耗时分布占比




优化后,启动耗时占比分布整体大幅前移,说明线上用户的启动耗时大幅下降。


2)播放页加载耗时分布占比




优化后,播放页加载耗时占比分布整体大幅前移,说明线上用户的播放页加载耗时大幅下降。


  1. 高活用户占比



优化后,高活用户占比相对提升 5.6%。


作者 | 阿里文娱高级无线开发工程师 亖石


2020 年 5 月 09 日 18:571394

评论

发布
暂无评论
发现更多内容
性能优化之老生新谈:飞一般的iPad_文化 & 方法_阿里巴巴文娱技术_InfoQ精选文章