Flutter、Native和React-Native性能大比拼:究竟谁居首位?

发表时间: 2020-04-17 12:31

全文共1283字,预计学习时长5分钟


图源:unsplash


什么是构建移动应用程序最流行的解决方案?单一平台,跨平台使用ReactNative ,或是Flutter?


虽然单一开发被定位为AAA技术解决方案,但它也有一些缺点,这些缺点为跨平台应用程序的进入创造了市场空间。


单一开发需要开发团队付出更多的努力来完成项目,但它可以幕后完全控制复杂的技术工作。而选择使用跨平台,由于它有通用代码库,则可以显著加快开发过程,使项目支持更加容易,并减少开发费用。


但与跨平台开发相比,单一开发的另一个优势是性能。


技术领域,可能会有“跨平台应用程序速度慢”的刻板印象。实践出真知,笔者决定测试一下这个说法是否真实,以及跨平台应用程序比单一应用程序慢到什么程度。


图源:unsplash


性能有很多种,包括:


· 与手机应用程序接口(API)交互(访问照片、文件系统、获取GPS位置等)。

· 业务逻辑(数学计算和内存操作的速度。该性能对具有复杂业务逻辑的应用程序来说最为重要)。

· 渲染速度(动画平滑度、用户界面改变时的每秒帧数或一些实时出现的用户界面效果)。


本文中,笔者分享了性能测试的结果,这些结果显示了在单一和跨平台方法中实现的数字Pi的数学计算。


IOS系统的中央处理器(CPU)密集型测试(高斯-勒让德算法)


· Objective-C是iOS开发的最佳编程语言。Swift比Objective-C慢1.7倍。

· 意料之外:Flutter比Swift快15%。

· React Native比Objective-C慢20倍


IOS操作系统CPU密集型测试(博尔温算法)


· 目标C是iOS应用程序开发的最佳选择。Swift比Objective-C慢1.9倍。

· Flutter比Swift慢5倍。

· React Native版本比Swift版本慢15倍以上。


安卓系统CPU密集型测试(高斯-勒让德算法)


· Java和Kotlin性能指标相似,是Android开发的最佳选择。

· Flutter比单一平台方法约慢20%。

· React Native约比单一反应速度慢15倍。


安卓系统CPU密集型测试(博尔温算法)


· Java和Kotlin性能指标相似,是Android开发的最佳选择。

· 单一平台方式比Flutter快2倍。

· React native约比单一平台方式反应速度慢6倍。


图源:unsplash


需要注意的是:


1.所有测试都是在实体设备上完成的(运行在IOS 13.2.3平台上的苹果6s 和安卓9.0平台上的小米Redmi Note 5)。


2.所有测试都经多次运行,并计算了平均结果。


3.笔者测试了发布版本的性能。某些情况下,调试版本可能比发布版本慢得多。


4.使用高斯-勒让德和博尔温算法计算数字Pi。Pi被计算了100次,精度为1000万位数。


5.与博尔温算法相比,高斯-勒让德算法是一种内存密集型算法,但博尔温算法是CPU密集型算法。

6.源代码:
https://github.com/nazarcybulskij/Mobile_Bechmarks_


那么这场性能battle谁胜谁负呢?


总体来说,并非所有跨平台应用都很慢。Flutter应用程序的性能比Swift应用程序更高。假如你想开发速度极快的iOS应用程序,Objective C和Flutter将是明智之选。而对于高计算负载的应用程序来说,Flutter对于安卓和iOS来说都是不错的选择。


最终结论就是!刻板印象害人不浅,以及最适合的才是最好的。

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范