共计 1601 个字符,预计需要花费 5 分钟才能阅读完成。
老孟导读 :这是老孟翻译的付费文章,文章所有权归原作者所有。
欢迎加入老孟 Flutter 交流群,每周翻译 2 - 3 篇付费文章,精彩不容错过。
原文地址:https://medium.com/swlh/flutt…
今天,一些最流行的构建移动应用程序的解决方案是原生开发或者使用 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,我们随时乐意为您提供帮助。
交流
老孟 Flutter 博客地址(330 个控件用法):http://laomengit.com
欢迎加入 Flutter 交流群(微信:laomengit)、关注公众号【老孟 Flutter】: