老孟导读:这是老孟翻译的付费文章,文章所有权归原作者所有。
欢迎加入老孟Flutter交流群,每周翻译2-3篇付费文章,精彩不容错过。
原文地址:https://medium.com/swlh/flutter-vs-native-vs-react-native-examining-performance-31338f081980
今天,一些最流行的构建移动应用程序的解决方案是原生开发或者使用React Native或Flutter跨平台方法。虽然原生开发被定位为AAA技术解决方案,但它具有一些缺点,为跨平台应用程序的进入创造了市场空间。总的来说,本机开发需要开发团队付出更多的努力来完成项目,但它可以完全控制棘手的问题。另一方面,如果选择跨平台,则由于具有通用的代码库,因此可以大大加快开发过程,简化项目支持并减少开发费用。
与跨平台开发相比,原生的另一优势是性能。在技术领域,您会遇到“跨平台应用程序运行缓慢”的成见。我们决定测试它是否正确,以及跨平台应用程序比本地应用程序慢的程度。
有不同类型的性能,其中一些是:
-
与电话API交互(访问照片,文件系统,获取GPS位置等)。
-
渲染速度(动画平滑度,更改UI时的每秒帧数或及时发生的某些UI效果)。
-
业务逻辑(数学计算和内存操作的速度。这种性能对于具有复杂业务逻辑的应用最为重要)。
在本文中,我们分享了性能测试的结果,这些结果显示了在原生和跨平台方法中实现的数字PI的数学计算。
适用于iOS的CPU密集型测试(Gauss–Legendre算法)
iOS:
- Objective-C是用于iOS开发的最佳编程语言。 Swift比Objective C慢1.7倍
- 惊喜:Flutter比Swift快一点(15%)。
- React Native比Objective C慢20倍
适用于iOS的CPU密集型测试(Borwein算法)
iOS:
- Objective-C是iOS应用开发的最佳选择。 Swift比Objective-C慢1.9倍。
- Flutter比Swift慢5倍。
- React Native版本比Swift版本慢15倍以上。
适用于Android的CPU密集型测试(Gauss–Legendre算法)
- Java和Kotlin具有相似的性能指标,并且是Android开发的最佳选择。
- Flutter比原生慢大约20%。
- React Native比原生慢15倍。
适用于Android的CPU密集型测试(Borwein算法)
- Java和Kotlin具有相似的性能指标,并且是Android开发的最佳选择。
- 原生速度是Flutter的2倍。
- React native比原生慢6倍。
技术细节:
- 所有测试都在真实的物理设备上完成(iPhone 6s IOS 13.2.3和在Android 9.0下运行的Xiaomi Redmi Note 5);
- 我们评估了发布版本的性能。在某些情况下,调试版本可能比发行版本要慢得多。
- 所有测试都运行了几次,并计算出平均结果。
- 使用了计算Ga值的Gauss–Legendre和Borwein算法。 Pi编号已被计算100次,精度为1000万位数。
- 与Borwein相比,Gauss–Legendre是一种内存密集型算法,但Borwein的CPU密集型。
- 源代码:https://github.com/nazarcybulskij/Mobile_Bechmarks
重要要点
- 总之,并非所有跨平台应用程序都运行缓慢。不仅如此,Flutter应用程序的性能要比Swift应用程序高。
- 如果您要开发超快速的iOS应用程序,那么Objective C和Flutter将是明智的选择。
- 对于具有高负载计算的应用程序,Flutter是Android和iOS应用程序开发的不错选择。
如果您在选择开发移动工具时遇到麻烦,请随时通知inVerita,我们随时乐意为您提供帮助。
交流
老孟Flutter博客地址(330个控件用法):http://laomengit.com
欢迎加入Flutter交流群(微信:laomengit)、关注公众号【老孟Flutter】:
网友评论