Flutter sksl 着色器预热

Flutter Skia sksl 着色器预热(小记)

纯Flutter项目开发时间大概3年多了,基本都是构建在Android和IOS平台的应用程序,至于Flutter性能方面,Android平台的体验和流畅度确实优于IOS,再加上安卓平台可以根据Skia着色器预热编译,使得页面导航、动画、裁剪等触发时更加流畅。

虽然IOS也可以缓存着色器数据,但是和安卓还是有很大不同的,着色器主要还是为了解决应用程序首次运行的编译卡顿,对于安卓,App从安装到首次打开,着色器预热编译数据就已经起到了很好的助攻效果,但是IOS则是每次打开App时都需要从0开始加载着色器数据,这就导致IOS在Flutter性能方面不如Android平台。

所以针对于IOS平台,除了着色器预热,还可以选择延迟加载的方式,出现卡顿的很大原因是Widget在绘制过程中更新了UI, 例如,页面导航时,请求服务器数据或者其他耗时的操作,可以在页面导航结束后再执行,例如Future.delayed 等等。

怀疑是着色器编译卡顿时,可以通过命令运行app,查看Timeline Raster耗时
  • flutter run --trace-skia --profile
收集着色器数据
  • flutter run --cache-sksl --profile
通过上一步生成的着色器数据flutter_01.sksl.json文件,
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Foritee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值