阅读 252

Flutter vs Native与React-Native:检查性能

老孟导读:这是老孟翻译的付费文章,文章所有权归原作者所有。

欢迎加入老孟Flutter交流群,每周翻译2-3篇付费文章,精彩不容错过。

原文地址:medium.com/swlh/flutte…

今天,一些最流行的构建移动应用程序的解决方案是原生开发或者使用React Native或Flutter跨平台方法。虽然原生开发被定位为AAA技术解决方案,但它具有一些缺点,为跨平台应用程序的进入创造了市场空间。总的来说,本机开发需要开发团队付出更多的努力来完成项目,但它可以完全控制棘手的问题。另一方面,如果选择跨平台,则由于具有通用的代码库,因此可以大大加快开发过程,简化项目支持并减少开发费用。

与跨平台开发相比,原生的另一优势是性能。在技术领域,您会遇到“跨平台应用程序运行缓慢”的成见。我们决定测试它是否正确,以及跨平台应用程序比本地应用程序慢的程度。

有不同类型的性能,其中一些是:

  1. 与电话API交互(访问照片,文件系统,获取GPS位置等)。

  2. 渲染速度(动画平滑度,更改UI时的每秒帧数或及时发生的某些UI效果)。

  3. 业务逻辑(数学计算和内存操作的速度。这种性能对于具有复杂业务逻辑的应用最为重要)。

在本文中,我们分享了性能测试的结果,这些结果显示了在原生和跨平台方法中实现的数字PI的数学计算。

适用于iOS的CPU密集型测试(Gauss–Legendre算法)

iOS:

  1. Objective-C是用于iOS开发的最佳编程语言。 Swift比Objective C慢1.7倍
  2. 惊喜:Flutter比Swift快一点(15%)。
  3. React Native比Objective C慢20倍

适用于iOS的CPU密集型测试(Borwein算法)

iOS:

  1. Objective-C是iOS应用开发的最佳选择。 Swift比Objective-C慢1.9倍。
  2. Flutter比Swift慢5倍。
  3. 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倍。

技术细节:

  1. 所有测试都在真实的物理设备上完成(iPhone 6s IOS 13.2.3和在Android 9.0下运行的Xiaomi Redmi Note 5);
  2. 我们评估了发布版本的性能。在某些情况下,调试版本可能比发行版本要慢得多。
  3. 所有测试都运行了几次,并计算出平均结果。
  4. 使用了计算Ga值的Gauss–Legendre和Borwein算法。 Pi编号已被计算100次,精度为1000万位数。
  5. 与Borwein相比,Gauss–Legendre是一种内存密集型算法,但Borwein的CPU密集型。
  6. 源代码:https://github.com/nazarcybulskij/Mobile_Bechmarks

重要要点

  1. 总之,并非所有跨平台应用程序都运行缓慢。不仅如此,Flutter应用程序的性能要比Swift应用程序高。
  2. 如果您要开发超快速的iOS应用程序,那么Objective C和Flutter将是明智的选择。
  3. 对于具有高负载计算的应用程序,Flutter是Android和iOS应用程序开发的不错选择。

如果您在选择开发移动工具时遇到麻烦,请随时通知inVerita,我们随时乐意为您提供帮助。

交流

老孟Flutter博客地址(330个控件用法):laomengit.com

欢迎加入Flutter交流群(微信:laomengit)、关注公众号【老孟Flutter】: