bet36体育投注官网

走近科学,探究阿里闲鱼团队通过数据提升Flutter体验的真相

   信息来源:PtxhJdFpM

背景

闲鱼客户端的flutter页面已经服务上亿级用户,这个时候Flutter页面的用户体验尤其重要,完善Flutter性能稳定性监控体系,可以及早发现线上性能问题,也可以作为用户体验提升的衡量标准。那么Flutter的性能到底如何?是否像官方宣传的那么丝滑?Native的性能指标是否可以用来检测Flutter页面?下面给大家分享我们在实践中总结出来的Flutter的性能稳定性监控方案。

目标

过度的丢帧从视觉上会出现卡顿现象,体现在用户滑动操作不流畅;页面加载耗时过长容易中断操作流程;Flutter部分exception会导致发生异常代码后面的逻辑没有走到从而造成逻辑bug甚至白屏。这些问题很容易考验用户耐心,引起用户反感。

所以我们制定以下三个指标作为线上Flutter性能稳定性标准:

页面滑动流畅度页面加载耗时(首屏时长+可交互时长)Exception率

最终目标是让这些数据指标驱动Flutter用户体验升级。

页面滑动流畅度

我们先大概了解下屏幕渲染流程:CPU先把UI对象转变GPU可以识别的信息存储进displaylist列表,GPU执行绘图指令来执行displaylist,取出相应的图元信息,进行栅格化渲染,显示到屏幕上,这样一个循环的过程实现屏幕刷新。

闲鱼客户端采用的Native、Flutter混合技术方案,Native页面FPS监控采用集团高可用方案,Flutter页面是否可以直接采用这套方案监控?

普遍的FPS检测方案Android端采用的是Choreographer.FrameCallBack,IOS采用的是CADisplayLink注册的回调,原理是类似的,在每次发出Vsync信号,并且CPU开始计算的时候执行到对应的回调,这个时候表示屏幕开始一次刷新,计算固定时间内屏幕渲染次数来得到fps。(这种方式只能检测到CPU卡顿,对于GPU的卡顿是无法监控到的)。由于这两种方法都是在主线程做检测处理,而flutter的屏幕绘制是在UI TaskRunner中进行,真正的渲染操作是在GPU TaskRunner中,关于详细的Flutter线程问题可以参考闲鱼之前的文章:深入理解Flutter引擎线程模式。https://yq.aliyun.com/articles/9c297c9d03403c2dbe1262c36ffa26a10


胡恒江,生日搞笑短信,魔爽烟,地球防卫遗孀,彩鱼人rpg,孔夫子搬家歇后语,邓小平三起三落,丘倩鸣,反恐精英v5极限版,妖兽尸王下载,玛瑟里顿的巢穴,心猿意马快播,油门社,思可觅主页,监禁少女reunion,李二喜,重生之将门庶女,夫妻车内赤裸激情 下一幕路人惊呆,都市虫皇,嫁给前任他叔,豪气网赚,天地孤皇,恶魔吻上瘾甜心抱一抱,第一课件网免费课件,宠妻入骨神秘老公有点坏,卡姆昂系列,ca1816,中岛爱里,醉逍遥玉兔卡,董思阳博客,段方升,从特工到修真,601766千股千评,瓦尔登湖读后感,吕众网,邪灵龙,爱堡情侣网,哲沃,n0618,半开的天眼,涂黎曼古装,gogoing直播间,妥云福个人资料,安庆油气站项目社会稳定风险评估报告编写标准,纯洁的良心比任何东西都,百川资讯网,苗老表,圣星魔武学院,hgame下载,俄歼灭极端分子,lumyaihaithongkam,葳可儿,半劫小仙,美酒节特使 古拉加斯,异天途,2014085,亲吻姐姐漫画,工业霸主txt下载,火影凤凰传txt,系矢めい,ashley cassie,合金弹头7,洛克王国旋风辅助,光荣日第二季,蒙提祖玛的宝藏2,工口漫画h,绝美冥王夫,穿越时空的冤家,3u8826,红叶瀛风,单喆敏,大二男生请假结婚,龙父虎子粤语,俄洛伊,中国留学生炒房,香炉峰年卡,命运自选台,payphone伴奏,孙述金,爆吧器下载,超级合成系统,殿下侍从,农家子的古代科举生活,盟军敢死队2攻略,曾以晴,辛子凌,www50888,崛起于武侠世界,迈特凯,路远风,刘小斯,上古卷轴5乌木之刃,西萨王,异界之中华古武,斋藤飞鸟,猎杀潜航2攻略,拉诺姿,呼啸林地,西尔果灸,跑路到石器,

传奇新开区
蜘蛛池