全文共1283字,預計學習時長
5分鐘什麼是構建移動應用程序最流行的解決方案?單一平臺,跨平臺使用ReactNative ,或是Flutter?
雖然單一開發被定位為AAA技術解決方案,但它也有一些缺點,這些缺點為跨平臺應用程序的進入創造了市場空間。
單一開發需要開發團隊付出更多的努力來完成項目,但它可以幕後完全控制複雜的技術工作。而選擇使用跨平臺,由於它有通用代碼庫,則可以顯著加快開發過程,使項目支持更加容易,並減少開發費用。
但與跨平臺開發相比,單一開發的另一個優勢是性能。
技術領域,可能會有“跨平臺應用程序速度慢”的刻板印象。實踐出真知,筆者決定測試一下這個說法是否真實,以及跨平臺應用程序比單一應用程序慢到什麼程度。
性能有很多種,包括:
· 與手機應用程序接口(API)交互(訪問照片、文件系統、獲取GPS位置等)。
· 業務邏輯(數學計算和內存操作的速度。該性能對具有複雜業務邏輯的應用程序來說最為重要)。
· 渲染速度(動畫平滑度、用戶界面改變時的每秒幀數或一些實時出現的用戶界面效果)。
本文中,筆者分享了性能測試的結果,這些結果顯示了在單一和跨平臺方法中實現的數字Pi的數學計算。
IOS系統的中央處理器(CPU)密集型測試(高斯-勒讓德算法)
· Objective-C是iOS開發的最佳編程語言。Swift比Objective-C慢1.7倍。
· 意料之外:Flutter比Swift快15%。
· React Native比Objective-C慢20倍
IOS操作系統CPU密集型測試(博爾溫算法)
· 目標C是iOS應用程序開發的最佳選擇。Swift比Objective-C慢1.9倍。
· Flutter比Swift慢5倍。
· React Native版本比Swift版本慢15倍以上。
安卓系統CPU密集型測試(高斯-勒讓德算法)
· Java和Kotlin性能指標相似,是Android開發的最佳選擇。
· Flutter比單一平臺方法約慢20%。
· React Native約比單一反應速度慢15倍。
安卓系統CPU密集型測試(博爾溫算法)
· Java和Kotlin性能指標相似,是Android開發的最佳選擇。
· 單一平臺方式比Flutter快2倍。
· React native約比單一平臺方式反應速度慢6倍。
需要注意的是:
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來說都是不錯的選擇。
最終結論就是!刻板印象害人不淺,以及最適合的才是最好的。
我們一起分享AI學習與發展的乾貨
閱讀更多 讀芯術 的文章
關鍵字: Objective-C Swift語言 中央處理器