镜像网站怎么做排名,网络管理系统开发,免费网站推广app,陕西省住房和城乡建设厅网站LazyColumn 是 compose 中用来实现类似 RecyclerView 效果的控件 #xff0c;但是大家都说LazyColumn性能比RecyclerView差太多#xff0c;毕竟 RecyclerView google优化了十多年了#xff0c;比RecyclerView差一点也正常#xff0c;今天我们就用实际数据来对比LazyColumn和…LazyColumn 是 compose 中用来实现类似 RecyclerView 效果的控件 但是大家都说LazyColumn性能比RecyclerView差太多毕竟 RecyclerView google优化了十多年了比RecyclerView差一点也正常今天我们就用实际数据来对比LazyColumn和RecyclerView看看后起之秀Compose LazyColumn 对比下老大哥RecyclerView差在哪里 Flutter列表控件就不拿来比了绝对比不过这两个。首先我们得知道流畅性的评判标准。
流畅性评判标准
业界常用 FPS 每秒渲染的帧数来评测流畅性 FPS 越高界面越流畅 。 现在屏幕刷新率大部分都为120hz 所以1/120 约等于8.3ms毫秒屏幕刷新一次60hz屏为16.6ms。我们可以根据LC和RV 快速滑动时监听滑动开始和结束去统计这个时间段两者的渲染帧数和渲染总耗时来评判两者的性能。
好了理论说完了解下来就是写代码实操了实践出真知数据才能证明一切Talk is cheap. Show me the code 。
准备数据
为了简洁起见以下将LazyColumn简称LC RecyclerView 简称RV 。
为了公平起见我们统一在LC 和 RV 填充一样都的数据 列表大小都为200个都用系统提供的控件LC 用 Text RV 用TextView Text 和 TextView 高度颜色文本都一致。如下 帧率统计相关代码如下 界面开始滑动时开始统计 结束滑动时打印渲染的帧数和时间差。好了到了令人激动的PK环节了两者的操作都是先开始快速下划到达底部后快速上划 循环几次这样操作来看数据。
至于使用都是官方示例使用不存在因为使用的问题影响结果吧
第一回合
这一回合渲染不加Thread.sleep就正常渲染模拟简单列表的情况。 看数据和实际体验就知道这一回合LC 赢了LC渲染时间更短并且渲染的帧数更多。但实际上两者体验都不差难分伯仲但极快滑动的时候还是感觉略微感觉LC 体验比较好比较丝滑。不管是不是极快滑动还是慢速滑动RV都是差不多的时间和渲染帧数比较稳。所以这个回合算LC赢给LC加 10分吧。
第二回合
这一回合加个 Thread.sleep(4) 半帧模拟电商超级app首页界面 大量渲染的情况 。 看数据以为LC更好但实际体验极快速滑动情况下LC会出现极为明显的卡顿的现象而RV不管怎么滑都还是很丝滑 不存在卡顿现象所以这个回合算RV赢了给RV加100分。
第三回合
这一回合加个 Thread.sleep(8) 一帧 模拟极其大量渲染的情况 。 这一回合LC我实在玩不下去了因为LC实在太卡了掉帧很严重。测试RV后发现RV还是很流畅但没有上一回合的RV流畅极其快速滑动时RV能略微感到有一丝卡但这一回合的RV性能依旧能吊打第二回合的LC 。这一回合给RV100000分。
至于为什么复杂列表LC渲染帧数更多耗时更短但反而更卡顿的原理考虑文章篇幅 之后再写吧。
总结下
LC 和 RV 各有长短就看我们如何去选择了用在什么场景了。
该如何选择相信大家看完也就知道了复杂列表 (像电商首页那种) 是必须要选用RV 的简单的列表可以选择LC因为简单列表LC体验更好更加丝滑跟手性更好。
当然LC 还在google的优化中 之后的LC肯定也会和他老大哥RV 一样不管面对什么场景都会有着更加稳定的表现。
Android 学习笔录
Android 性能优化篇https://qr18.cn/FVlo89 Android Framework底层原理篇https://qr18.cn/AQpN4J Android 车载篇https://qr18.cn/F05ZCM Android 逆向安全学习笔记https://qr18.cn/CQ5TcL Android 音视频篇https://qr18.cn/Ei3VPD Jetpack全家桶篇内含Composehttps://qr18.cn/A0gajp OkHttp 源码解析笔记https://qr18.cn/Cw0pBD Kotlin 篇https://qr18.cn/CdjtAF Gradle 篇https://qr18.cn/DzrmMB Flutter 篇https://qr18.cn/DIvKma Android 八大知识体https://qr18.cn/CyxarU Android 核心笔记https://qr21.cn/CaZQLo Android 往年面试题锦https://qr18.cn/CKV8OZ 2023年最新Android 面试题集https://qr18.cn/CgxrRy Android 车载开发岗位面试习题https://qr18.cn/FTlyCJ 音视频面试题锦https://qr18.cn/AcV6Ap