Flutter vs React Native vs Native:深度性能比较
老孟导读:这是老孟翻译的付费文章,文章所有权归原作者所有。 欢迎加入老孟Flutter交流群,每周翻译2-3篇付费文章,精彩不容错过。 原文地址:https://medium.com/swlh/flu
研究背后的故事
硬件信息:
仓库地址
用例1 —列表视图基准
在这种情况下使用的第三方库:
- 所有测试均显示出大致相同的FPS。
- 与Flutter和React Native相比,Android Native使用的内存只有一半。
- React Native需要最多的CPU开发。原因是在JS和本机代码之间使用JSBridge,这会导致序列化和反序列化方面的资源浪费。
- 关于电池开发,Android Native具有最佳效果。 React-native落后于Android和Flutter。运行连续动画会在React Native上消耗更多电池电量。
iPhone 6s test
- FPS,React Native的结果比Flutter和Swift差。原因是无法在iOS上使用IoT编译。
- 内存。 Flutter与Native在内存消耗上几乎一样,但在CPU上仍然较重。在此测试中,React Native远远落后于Flutter和native。
- Flutter和Swift之间的区别。当iOS Native积极使用GPU时,Flutter积极使用CPU。 Flutter中的协调会增加CPU的负载。
用例2 —繁重的动画测试
Android
- Android和React Native在性能上有相似之处。很明显,因为Lottie for React Native使用本地方式(16–19%CPU,30–29 FPS)。
- Flutter的结局令人惊讶,在演出中有点糟。 (12%的CPU和9 FPS)。
- Android需要最少的内存(205 Mb); React Native需要280 Mb,Flutter需要266 Mb。
- 冷启动应用程序。根据此指标,Flutter处于领先地位(2秒)。对于Android Native和React Native,大约需要4秒钟。
iOS
- iOS和React Native在此测试中的结果几乎与Lottie for React Native使用本地方法相同。
- Flare和Flutter不会令人惊讶。Flare 还有很长的一段路要走。
- iOS Native需要最少的内存量(48 Mb)。 React Native需要135 Mb,Flutter需要117 Mb。
- 冷启动应用程序。根据此指标,Flutter处于领先地位(2秒)。对于iOS和React Native,大约需要10秒钟。
用例3-更重的动画会测试旋转,缩放和淡入淡出。
Android
- Native 显示出最佳性能和最有效的内存消耗。
- Flutter显示出非常接近本机fps,并且内存开销增加了两倍,但性能仍然不错。
- React Native-在这种情况下表现不佳。
iOS
- iPhone 6s足够强大,在所有3种情况下都不会降低fps。
- Native 使用的资源较少,而GPU则最多使用。
- React Native主要使用CPU进行渲染,而Flutter使用GPU。
- React Native使用了更多的内存。
总结
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。