Flutter vs React Native 性能测试结果
liuian 2025-05-21 14:58 2 浏览
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——按钮
相关推荐
- Flutter——输入部件
-
上一节介绍了文本部件,用于显示文本。但是在我们进行日常软件开发过程中,经常是需要获取用户键入的内容,比如用户名、密码、性别、喜好等等。Flutter提供了丰富的部件来处理用户输入,本节将主要介绍以下...
- flutter系列之:做一个图像滤镜
-
简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...
- 免费好用还高级!3个必须知道的设计网站,让你的PPT好看10倍
-
哈喽,大家早上好鸭~好久不见,我是三石,今天我又来进行PPT技巧分享啦~诶,这不前几天编辑部的萌萌就来找我约稿,说小叶子们对于神器网站的呼声很高,问我能不能写一篇文章汇总一下,我二话没说就答应了。常言...
- flutter软件开发笔记08-容器使用方法
-
在Flutter3中,容器组件是用于布局、装饰或约束子组件的核心部件,能让程序更加美观,如何学习呢,能快速的应用起来,下面通过例子,来快速理解各种容器组件的使用方法。一程序界面二代码实现imp...
- Tauri:下一代桌面应用开发框架?
-
大厂技术坚持周更精选好文本文为来自教育-智能学习-前端团队成员的文章,已授权ELab发布。智能学习前端团队自创立以来,团队专注于打破大众对教育的刻板印象,突破固有的教学思维,攻破各类...
- Google移动开发平台Flutter发布 iOS和Android开发者神器
-
在昨晚的FlutterLive2018上,Google宣布Flutter1.0正式发布。这是一个基于Dart的移动开发平台,旨在帮助开发者在iOS和Android两个平台上...
- Flutter如何内存优化
-
Flutter是一种流行的跨平台移动应用程序开发框架,它提供了一种高效的方式来构建美观、快速、可靠的应用程序。然而,随着应用程序规模的增加,内存管理成为了一个重要的问题。本文将探讨如何优化Flutte...
- 阿里卖家 Flutter for Web 工程实践
-
作者:马坤乐(坤吾)Flutter自2015年初次亮相以来,经过了多年的发展已经相当成熟,在阿里、美团、拼多多等互联网公司都有广泛的应用。在ICBU阿里卖家上90+%的新业务使用Flu...
- Flutter——按钮
-
上一节介绍了输入组件,让我们了解了输入框、单选、多选、进度条等部件。为了响应用户的点击或触摸操作,就需要学习一种新的部件-按钮。Flutter中有多种类型的按钮,用于响应用户的点击或触摸操作。接下来...
- Flutter vs React Native 性能测试结果
-
FluttervsReactNative性能测试结果:谁才是王者?大家好,我是猫哥。今天会去讲一下Flutter和ReactNative的性能比较的情况。首先说一下ReactNative猫哥...
- 定位Flutter内存问题很难么?
-
内存水位升高导致的稳定性问题严重影响app用户体验,所以开发者们非常关注Flutter的内存表现。随着Flutter业务越来越多,闲鱼也面临着oom导致的crash率提升的问题,下面我们结合项目中实际...
- 超详解析Flutter渲染引擎|业务想创新,不了解底层原理怎么行?
-
作者|万红波(远湖)出品|阿里巴巴新零售淘系技术部前言Flutter作为一个跨平台的应用框架,诞生之后,就被高度关注。它通过自绘UI,解决了之前RN和weex方案难以解决的多端一致性...
- flutter软件开发笔记25-内置组件总结
-
以下是Flutter内置的核心UI组件分类及常用组件列表,方便你系统化学习和掌握:1.基础组件组件名说明Text显示文本,支持样式、换行和富文本(TextSpan)Icon显示Materi...
- Flutter CarouselView 3.24版本的一个新组件
-
Flutter3.24带来了几个令人兴奋的新功能,其中最引人注目的是CarouselView小部件。这个小部件允许开发人员创建可滚动的、动态的项目列表,这些列表可以在进入和退出视图时调整大小,这对于...
- 详解Flutter如何用思源宋体炫出你的UI
-
如何实现使用思源宋体字体样式。首先,让我们来了解一下什么是资源素材管理。简单来说,它就是为了方便我们管理各种资源文件,比如图片、字体、音频等。在Flutter中,我们可以使用pubspec.yam...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
python使用fitz模块提取pdf中的图片
-
《人人译客》如何规划你的移动电商网站(2)
-
Jupyterhub安装教程 jupyter怎么安装包
-
- 最近发表
- 标签列表
-
- 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)
- table.render (33)
- uniapp textarea (33)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- react-admin (33)
- vscode切换git分支 (35)
- vscode美化代码 (33)
- python bytes转16进制 (35)