历史上的今天
626年的今天唐太宗李世民发动玄武门之变杀太子李建成
玄武门之变是唐高祖武德九年六月初四(公元626年7月2日)由当时唐高祖李渊次子秦王李世民在唐王朝的首都长安城大内皇宫的北宫门——玄武门附近发动的一次流血政变。
正文
老孟导读:这是老孟翻译的付费文章,文章所有权归原作者所有。 欢迎加入老孟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,我们随时乐意为您提供帮助。