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

老孟Flutter發表於2020-07-01

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

歡迎加入老孟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】:

相關文章