全文共1283字,预计学习时长5分钟
什么是构建移动应用程序最流行的解决方案?单一平台,跨平台使用ReactNative ,或是Flutter?
虽然单一开发被定位为AAA技术解决方案,但它也有一些缺点,这些缺点为跨平台应用程序的进入创造了市场空间。
单一开发需要开发团队付出更多的努力来完成项目,但它可以幕后完全控制复杂的技术工作。而选择使用跨平台,由于它有通用代码库,则可以显著加快开发过程,使项目支持更加容易,并减少开发费用。
但与跨平台开发相比,单一开发的另一个优势是性能。
技术领域,可能会有“跨平台应用程序速度慢”的刻板印象。实践出真知,笔者决定测试一下这个说法是否真实,以及跨平台应用程序比单一应用程序慢到什么程度。
性能有很多种,包括:
· 与手机应用程序接口(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倍。
需要注意的是:
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学习与发展的干货
如转载,请后台留言,遵守转载规范