Flutter vs Native與React-Native:檢查性能


Flutter vs Native與React-Native:檢查性能


老孟導讀:這是老孟翻譯的付費文章,文章所有權歸原作者所有。

歡迎加入老孟Flutter交流群,每週翻譯2-3篇付費文章,精彩不容錯過。

原文地址:https://medium.com/swlh/flutter-vs-native-vs-react-native-examining-performance-31338f081980


Flutter vs Native與React-Native:檢查性能


今天,一些最流行的構建移動應用程序的解決方案是原生開發或者使用React Native或Flutter跨平臺方法。雖然原生開發被定位為AAA技術解決方案,但它具有一些缺點,為跨平臺應用程序的進入創造了市場空間。總的來說,本機開發需要開發團隊付出更多的努力來完成項目,但它可以完全控制棘手的問題。另一方面,如果選擇跨平臺,則由於具有通用的代碼庫,因此可以大大加快開發過程,簡化項目支持並減少開發費用。


與跨平臺開發相比,原生的另一優勢是性能。在技術領域,您會遇到“跨平臺應用程序運行緩慢”的成見。我們決定測試它是否正確,以及跨平臺應用程序比本地應用程序慢的程度。


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

  1. 與電話API交互(訪問照片,文件系統,獲取GPS位置等)。
  2. 渲染速度(動畫平滑度,更改UI時的每秒幀數或及時發生的某些UI效果)。
  3. 業務邏輯(數學計算和內存操作的速度。這種性能對於具有複雜業務邏輯的應用最為重要)。

在本文中,我們分享了性能測試的結果,這些結果顯示了在原生和跨平臺方法中實現的數字PI的數學計算。


適用於iOS的CPU密集型測試(Gauss–Legendre算法)

Flutter vs Native與React-Native:檢查性能


iOS:

  1. Objective-C是用於iOS開發的最佳編程語言。 Swift比Objective C慢1.7倍
  2. 驚喜:Flutter比Swift快一點(15%)。
  3. React Native比Objective C慢20倍


適用於iOS的CPU密集型測試(Borwein算法)

Flutter vs Native與React-Native:檢查性能


iOS:

  1. Objective-C是iOS應用開發的最佳選擇。 Swift比Objective-C慢1.9倍。
  2. Flutter比Swift慢5倍。
  3. React Native版本比Swift版本慢15倍以上。


適用於Android的CPU密集型測試(Gauss–Legendre算法)

Flutter vs Native與React-Native:檢查性能

  • Java和Kotlin具有相似的性能指標,並且是Android開發的最佳選擇。
  • Flutter比原生慢大約20%。
  • React Native比原生慢15倍。


適用於Android的CPU密集型測試(Borwein算法)

Flutter vs Native與React-Native:檢查性能

  • 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重要要點總之,並非所有跨平臺應用程序都運行緩慢。不僅如此,Flutter應用程序的性能要比Swift應用程序高。如果您要開發超快速的iOS應用程序,那麼Objective C和Flutter將是明智的選擇。對於具有高負載計算的應用程序,Flutter是Android和iOS應用程序開發的不錯選擇。如果您在選擇開發移動工具時遇到麻煩,請隨時通知inVerita,我們隨時樂意為您提供幫助。

## 交流

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

歡迎加入Flutter交流群(微信:laomengit)、關注公眾號【老孟Flutter】


分享到:


相關文章: