Flutter,Native,React-Native,這場性能之比,誰勝誰負?

全文共1283字,預計學習時長

5分鐘


Flutter,Native,React-Native,這場性能之比,誰勝誰負?

圖源:unsplash


什麼是構建移動應用程序最流行的解決方案?單一平臺,跨平臺使用ReactNative ,或是Flutter?


雖然單一開發被定位為AAA技術解決方案,但它也有一些缺點,這些缺點為跨平臺應用程序的進入創造了市場空間。


單一開發需要開發團隊付出更多的努力來完成項目,但它可以幕後完全控制複雜的技術工作。而選擇使用跨平臺,由於它有通用代碼庫,則可以顯著加快開發過程,使項目支持更加容易,並減少開發費用。


但與跨平臺開發相比,單一開發的另一個優勢是性能。


技術領域,可能會有“跨平臺應用程序速度慢”的刻板印象。實踐出真知,筆者決定測試一下這個說法是否真實,以及跨平臺應用程序比單一應用程序慢到什麼程度。


Flutter,Native,React-Native,這場性能之比,誰勝誰負?

圖源:unsplash


性能有很多種,包括:


· 與手機應用程序接口(API)交互(訪問照片、文件系統、獲取GPS位置等)。

· 業務邏輯(數學計算和內存操作的速度。該性能對具有複雜業務邏輯的應用程序來說最為重要)。

· 渲染速度(動畫平滑度、用戶界面改變時的每秒幀數或一些實時出現的用戶界面效果)。


本文中,筆者分享了性能測試的結果,這些結果顯示了在單一和跨平臺方法中實現的數字Pi的數學計算。


IOS系統的中央處理器(CPU)密集型測試(高斯-勒讓德算法)


Flutter,Native,React-Native,這場性能之比,誰勝誰負?

· Objective-C是iOS開發的最佳編程語言。Swift比Objective-C慢1.7倍。

· 意料之外:Flutter比Swift快15%。

· React Native比Objective-C慢20倍


IOS操作系統CPU密集型測試(博爾溫算法)


Flutter,Native,React-Native,這場性能之比,誰勝誰負?

· 目標C是iOS應用程序開發的最佳選擇。Swift比Objective-C慢1.9倍。

· Flutter比Swift慢5倍。

· React Native版本比Swift版本慢15倍以上。


安卓系統CPU密集型測試(高斯-勒讓德算法)


Flutter,Native,React-Native,這場性能之比,誰勝誰負?

· Java和Kotlin性能指標相似,是Android開發的最佳選擇。

· Flutter比單一平臺方法約慢20%。

· React Native約比單一反應速度慢15倍。


安卓系統CPU密集型測試(博爾溫算法)


Flutter,Native,React-Native,這場性能之比,誰勝誰負?

· Java和Kotlin性能指標相似,是Android開發的最佳選擇。

· 單一平臺方式比Flutter快2倍。

· React native約比單一平臺方式反應速度慢6倍。


Flutter,Native,React-Native,這場性能之比,誰勝誰負?

圖源:unsplash


需要注意的是:


1.所有測試都是在實體設備上完成的(運行在IOS 13.2.3平臺上的蘋果6s 和安卓9.0平臺上的小米Redmi Note 5)。


2.所有測試都經多次運行,並計算了平均結果。


3.筆者測試了發佈版本的性能。某些情況下,調試版本可能比發佈版本慢得多。


4.使用高斯-勒讓德和博爾溫算法計算數字Pi。Pi被計算了100次,精度為1000萬位數。


5.與博爾溫算法相比,高斯-勒讓德算法是一種內存密集型算法,但博爾溫算法是CPU密集型算法。

6.源代碼:https://github.com/nazarcybulskij/Mobile_Bechmarks_


那麼這場性能battle誰勝誰負呢?


總體來說,並非所有跨平臺應用都很慢。Flutter應用程序的性能比Swift應用程序更高。假如你想開發速度極快的iOS應用程序,Objective C和Flutter將是明智之選。而對於高計算負載的應用程序來說,Flutter對於安卓和iOS來說都是不錯的選擇。


最終結論就是!刻板印象害人不淺,以及最適合的才是最好的。

Flutter,Native,React-Native,這場性能之比,誰勝誰負?

我們一起分享AI學習與發展的乾貨


分享到:


相關文章: