Flutter vs React Native 性能测试结果
liuian 2025-05-21 14:58 39 浏览
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的对比情况,谢谢大家。更多内容点击主页查看。
- 上一篇:定位Flutter内存问题很难么?
- 下一篇:Flutter——按钮
相关推荐
-
- 驱动网卡(怎么从新驱动网卡)
-
网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...
-
2026-01-30 00:37 liuian
- win10更新助手装系统(微软win10更新助手)
-
1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...
- windows11专业版密钥最新(windows11专业版激活码永久)
-
Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...
-
- 手机删过的软件恢复(手机删除过的软件怎么恢复)
-
操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...
-
2026-01-29 23:55 liuian
- 一键ghost手动备份系统步骤(一键ghost 备份)
-
步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。 步骤...
- 怎么创建局域网(怎么创建局域网打游戏)
-
1、购买路由器一台。进入路由器把dhcp功能打开 2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。 3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...
- 精灵驱动器官方下载(精灵驱动手机版下载)
-
是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...
- 一键还原系统步骤(一键还原系统有哪些)
-
1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。 2、在弹出的“准备安装”窗口中,可...
- 电脑加速器哪个好(电脑加速器哪款好)
-
我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...
- 任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)
-
是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...
- u盘怎么恢复文件(u盘文件恢复的方法)
-
开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...
- 系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)
-
1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...
-
- 剪贴板权限设置方法(剪贴板访问权限)
-
1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...
-
2026-01-29 21:37 liuian
- 平板系统重装大师(平板重装win系统)
-
如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...
- 联想官网售后服务网点(联想官网售后服务热线)
-
联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
Trae IDE 如何与 GitHub 无缝对接?
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
5步搞定动态考勤表!标记节假日、调休日?Excel自动变色!
-
RK3588-HDMIRX(瑞芯微rk3588芯片手册)
-
用纯Python轻松构建Web UI:Remi 动态更新,实时刷新界面内容
-
tplink无线路由器桥接教程(tplink路由器如何进行无线桥接)
-
都说Feign是RPC,没有侵入性,为什么我的代码越来越像 C++
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
