全文共字,预计学习时长5分钟
什么是构建移动应用程序最流行的解决方案?单一平台,跨平台使用ReactNative,或是Flutter?
虽然单一开发被定位为AAA技术解决方案,但它也有一些缺点,这些缺点为跨平台应用程序的进入创造了市场空间。
单一开发需要开发团队付出更多的努力来完成项目,但它可以幕后完全控制复杂的技术工作。而选择使用跨平台,由于它有通用代码库,则可以显著加快开发过程,使项目支持更加容易,并减少开发费用。
但与跨平台开发相比,单一开发的另一个优势是性能。
技术领域,可能会有“跨平台应用程序速度慢”的刻板印象。实践出真知,笔者决定测试一下这个说法是否真实,以及跨平台应用程序比单一应用程序慢到什么程度。
性能有很多种,包括:
·与手机应用程序接口(API)交互(访问照片、文件系统、获取GPS位置等)。
·业务逻辑(数学计算和内存操作的速度。该性能对具有复杂业务逻辑的应用程序来说最为重要)。
·渲染速度(动画平滑度、用户界面改变时的每秒帧数或一些实时出现的用户界面效果)。
本文中,笔者分享了性能测试的结果,这些结果显示了在单一和跨平台方法中实现的数字Pi的数学计算。
IOS系统的中央处理器(CPU)密集型测试(高斯-勒让德算法)
·Objective-C是iOS开发的最佳编程语言。Swift比Objective-C慢1.7倍。
·意料之外:Flutter比Swift快15%。
·ReactNative比Objective-C慢20倍
IOS操作系统CPU密集型测试(博尔温算法)
·目标C是iOS应用程序开发的最佳选择。Swift比Objective-C慢1.9倍。
·Flutter比Swift慢5倍。
·ReactNative版本比Swift版本慢15倍以上。
安卓系统CPU密集型测试(高斯-勒让德算法)
·Java和Kotlin性能指标相似,是Android开发的最佳选择。
·Flutter比单一平台方法约慢20%。
·ReactNative约比单一反应速度慢15倍。
安卓系统CPU密集型测试(博尔温算法)
·Java和Kotlin性能指标相似,是Android开发的最佳选择。
·单一平台方式比Flutter快2倍。
·Reactnative约比单一平台方式反应速度慢6倍。
需要注意的是:
1.所有测试都是在实体设备上完成的(运行在IOS13.2.3平台上的苹果6s和安卓9.0平台上的小米RedmiNote5)。
2.所有测试都经多次运行,并计算了平均结果。
3.笔者测试了发布版本的性能。某些情况下,调试版本可能比发布版本慢得多。
4.使用高斯-勒让德和博尔温算法计算数字Pi。Pi被计算了次,精度为0万位数。
5.与博尔温算法相比,高斯-勒让德算法是一种内存密集型算法,但博尔温算法是CPU密集型算法。
6.源代码: