当前位置:首页 > 技术分析 > 正文内容

Flutter vs React Native 性能测试结果

Flutter vs React Native性能测试结果:谁才是王者?

大家好,我是猫哥。今天会去讲一下Flutter和React Native的性能比较的情况。

首先说一下React Native猫哥最早的一批去使用的,因为那个年代都是处于ipad1和ipad2那个年代。最早的时候都用的是v-ray 6去渲染,加一些动画,切换时候会有卡顿这种情况,然后就会不敢去用动画。

用了React Native写了点测试,发现它的动画效果还是挺好的,体验也不错,所以就开始尝试用React Native,后来发现它的生态也好,性能也好,也是不错的。

前些年猫哥也是把Flutter引入团队,用在了一些小的项目,比如有二十个配角这种页面的项目,也是发现Flutter生态也是比较活跃的,性能也是让我们感觉也不错。最好的一点就是Flutter做两端的适配成本会比React Native低,真的是这样。

如果对Flutter开发感兴趣可以看一下猫哥的学习站,猫哥的课程也是渐进的设计,从基础到进阶,让你快速的去落地应用,去上线。同时猫哥还整理了一个资源站,这个站把一些优秀做的插件根据分类去整理了一下,还把一些优秀的开源的Flutter项目也整理出来了,还写了一个排名。

所以假如正在找这些资料可以来看一下,关于这一块先讲到这里,一起来看一下今天测试的方法。

有同学在把代码放在了github上面,它是提供了三个程序,这边给大家跑一下。

·第一个程序是做了一千行的大列表,第一张图是不动,第二张图是旋转,这是大列表,可能是考验滚动的情况。

·第二个就是开了两百个图片,又是旋转,又是放大缩小等,做了一些这样的操作,全是动画。

·第三个是跑了一些lottie的动画,是这样的情况,跑起来之后电脑已经百分之九十九了。

继续说测试基准测试过程,三个app已经知道了,是在M1 Mac上的机器上去跑的,这个系统是跑在安卓上面跑一端,因为安卓ios现在情况有点复杂,在安卓上就会去跑。

性能收集是用安卓的profiler的工具在做收集cpu和内存的情况,FPS帧数是分别用他们自己带的生态的开发工具的监控的数据在看。框架版本是React Native 0.74,这个版也是一个稳定版,现在好像最新的是零点七五。Flutter 是三点一九,其实现在比较好的渲染引擎是三点二,他没有用,用三点一九都是比较保守的方案。

直接来说结果。

·第一个,刚才看到的一个大列表,一千行的大列表。

·来看结果,第一个就是 apk 打包完之后,官方默认模板打包完之后,Flutter 是控制在了二十兆以内,其实这个还可以了,就没差多少兆。

·帧数就是Flutter是稳定的六十帧,这边React Native 52.5,差一点点。

·内存就是React Native会多一点,在滚动的时候是比较关键,滚动的时候看内存回收情况,React Native 就是比较高,不回收也是有道理的,可能是为了性能好一点,因为频繁的去释放内存是耗cpu的。

·cpu的使用,这边React Native 还是有点高,这其实是需要优化的,可能是跟引擎有关系,所以整体来说还是React Native的内存和cpu消耗在滚动的时候会高一点。

·再看第二个,不是有很多图片又旋转又透明什么的吗?一个是 apk 的size,React Native 还是会大一点。帧数基本上持平,这个还是很不错的,React Native 处理这种图片的还是不错的。就是 React Native 内存有点夸张,内存占用比较高。cpu也高,就是耗资源。

·也说到了一点,就是在动画启动的时候React Native 出现了FPS下降,这个情况其实还是跟引擎有关系,这是比较根本的东西。

·最后是 Lottie 的动画的测试,测试时候发现React Native apk size还在高,FPS不错。在引擎对Lottie的动画的处理上面还是帧数有保证。内存占用有点高,cpu有点高的比较多一点,所以还是有待优化的。

这边也是说了,如果Lottie在3.22上应该会有明显提升,因为3.22的目标是能够跑游戏引擎,所以未来Flutter 的引擎还会更好一点。

启动项目的对比就是从代码到运行整个过程消耗,创建app可以看到React Native 非常高,但是可能不太准,因为第一次会去下载依赖包,跟一个React Native 的同学应该是知道的,有很多依赖包要去下载。其实这个不太准,为什么?安卓本身会有一些依赖项。

同样的问题,在Flutter 上面也是会有这样的问题存在。启动程序方面,这种其实差别不是特别大的,一秒钟,这种几秒钟其实还可以,就是JS Bundle Time,Flutter不存在的。apk size,React Native还是比较大,就算指定cpu类型还是比较大,这个是需要瘦身的。

最后说个结论,还是Flutter整体来说,不管是尺寸、cpu、内存、滚动的消耗都会比rReact Native 性能好一点。

今天就快速的讲了一下关于Flutter 和 React Native的对比情况,谢谢大家。更多内容点击主页查看。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4776.html

分享给朋友:

“Flutter vs React Native 性能测试结果” 的相关文章

专为系统管理员设计的LINUX发行版SYSLINUXOS

SysLinuxOS 承诺“结束为管理任务寻找正确工具”的局面,提供“非常广泛的软件选择,特别是用于使用互联网”。译自 SysLinuxOS, A Linux Distro for System Administrators,作者 David Cassel。全球各地的系统集成商正在发现 SysLin...

「Git迁移」三行命令迁移Git包含提交历史,分支,tag标签等信息

问题描述:公司需要将一个git远程服务器的全部已有项目迁移到一台新服务器的Gitlab中,其中需要包含全部的提交纪录,已有的全部分支与全部打tag标签,目前此工作已全部迁移完毕,特此记录一下操作步骤环境描述:1. 要迁移的远程Git:Gitblit2. 迁移目的Git:Gitlab3. 暂存代码的P...

15款测试html5响应式的在线工具

手机、平板灯手持设备的增多,网站要顺应变化,就必须要做响应式开发,响应式网站最大的特点在于可以在不同设备下呈现不同的布局,是基于html5+css3技术,目前越来越多的网站开始采用了响应式设计,而下面15款工具可以方便测试你的html5响应式效果。Responsinatorhttp://www.re...

摄影后期必看 | PS插件camera raw 16.4教程 | 范围蒙版

范围蒙版Camera Raw 【蒙版】模块中提供了三个范围蒙版工具,可以通过特定的范围来创建蒙版。此次新增的【范围蒙版】大大加强了acr插件对局部调整的能力。点击下拉小箭头可以看到【颜色范围】,可用于快速选择想要编辑的颜色。快捷键:Shift + C【明亮度范围】,可用于快速选择想要调整的明亮度。快...

12种JavaScript中最常用的数组操作整理汇总

数组是最常见的数据结构之一,我们需要绝对自信地使用它。在这里,我将列出 JavaScript 中最重要的几个数组常用操作片段,包括数组长度、替换元素、去重以及许多其他内容。1、数组长度大多数人都知道可以像这样得到数组的长度:const arr = [1, 2, 3]; console.log(a...

三、Uni-app + vue3 页面如何跳转及传参?

Vue 项目往往需要使用 vue-router 插件,刚开始入门 Uni-app + Vue3 项目的同学,会不会想着路由使用 vue-router V4 版本不就可以了吗?不怕大家笑话,我就是这样想的,毕竟我是第一次使用 Uni-app ,由于孕期记性贼差,所以我决定写成笔记,加深记忆。uni-a...