Glide
React-native-fast-image
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ofGIYlVC-1650874408249)(https://user-gold-cdn.xitu.io/2020/7/1/1730870dcac20e0e?imageslim)]
Android — GPU 测试结果不支持 benchmark
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TAp1IvKD-1650874408250)(https://user-gold-cdn.xitu.io/2020/7/1/17308652f37e9711?imageView2/0/w/1280/h/960/ignore-error/1)]
检测结果:
JSBridge
,这会在序列化和反序列化方面浪费资源。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wqcLa0mS-1650874408250)(https://user-gold-cdn.xitu.io/2020/7/1/17308656599e3bd3?imageView2/0/w/1280/h/960/ignore-error/1)]
检测结果:
1、在 FPS 上 React Native 的结果比 Flutter 和 Swift 差,原因是无法在 iOS 上使用 IoT 编译。 2、在内存上 Flutter 与原生的内存消耗几乎相同,但在 Flutter 在 CPU 上消耗更重,在此测试中结果中 React Native 远远落后于 Flutte 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 r 和原生。 3、在测试结果中 Flutter 会利用更多CPU,而 iOS 原生会更多利用 GPU;
如今大多数 Android 和 iOS 都具有强大的硬件,所以在大多数情况下是不会发现 fps 有明显的下降,这就是为什么我们决定增加复杂的动画测试的原因,并且要足够复杂以实现导致 fps 下降。
该测试用力在 Android,iOS,React Native 上使用了 Lottie 进行复杂矢量动画的展示,并在 Flutter 上使用了 Flare 实现相同的动画。
如下图所示,是在 Android 、iOS 和 React Native 上使用 Lottie ,而在 Flutter 上使用的Flare 的实现效果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x1ANowdF-1650874408251)(https://user-gold-cdn.xitu.io/2020/7/1/173086a921b994a1?imageslim)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SnKZA1N0-1650874408251)(https://user-gold-cdn.xitu.io/2020/7/1/173086687995e5d1?imageView2/0/w/1280/h/960/ignore-error/1)]
而从上述网格动画中删除一个特定的动画后,居然会使 Flutter 上的 FPS 最高提高 40%,所以这里猜测可能是 Flare 对于类似乎任务没有进行优化,或者 Flutter 本身对这种绘制存在兼容问题的原因:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5wgA2MM8-1650874408252)(https://user-gold-cdn.xitu.io/2020/7/1/1730866e744745ed?imageView2/0/w/1280/h/960/ignore-error/1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fgtpdva2-1650874408252)(https://user-gold-cdn.xitu.io/2020/7/1/1730867100024b70?imageView2/0/w/1280/h/960/ignore-error/1)]
请注意:在这种情况下我们为 Flutter 使用了一个不同的库,该库比我们在其他平台上使用的库重得多,这可能是fps下降的原因。(因为 Lottie 在 Flutter 上目前的开源效果更差)
在此测试中,我们对 200 张图像进行动画运行(旋转和淡入淡出),从而对比不同平台的性能。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-loKVbCVX-1650874408253)(https://user-gold-cdn.xitu.io/2020/7/1/173087880a437d69?imageslim)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZGsP1K5S-1650874408253)(https://user-gold-cdn.xitu.io/2020/7/1/17308675f727c5c6?imageView2/0/w/1280/h/960/ignore-error/1)]
tter 显示出非常接近元素的 fps,但是内存开销增加了两倍。