RN 技術探索:Hermes Engine 初探
桔妹導讀:自從 Google 的 Flutter 釋出之後,Facebook 對 React-Native 的迭代開始快了起來,最佳化 React-Native 的效能表現,避免被 Flutter 比下去。最近一個比較大的動作是開源了一個 JavaScript 引擎,並將其包含到 React-Native 中。那麼這款引擎它有什麼不同,相比 V8、JSC 這些 JavaScript 引擎又有什麼優勢呢,現在本文來為你揭曉。
1.Hermes 引擎是什麼,優勢有哪些?
重要的事情提前說:Hermes 引擎是 Facebook 研發,在 React-Native Android 端用於替換 JavaScript Core 的 JavaScript 引擎。Hermes 引擎的優勢是適合移動端的輕量級 JavaScript 引擎,使用 aot 編譯,可以減少 Android 端記憶體使用,減小安裝包大小,提升執行效率。
2.什麼是 JavaScript 引擎?
JavaScript 引擎是一個專門處理 JavaScript 指令碼的虛擬機器,一般會附帶在網頁瀏覽器之中。
3.主流 JavaScript 引擎
V8(Google)、JavaScriptCore(Apple)、SpiderMonkey(Firefox)
4.RN 中的 JavaScript 引擎
Weex,Android:V8,iOS:JavaScriptCore
RN,Android:JavaScriptCore(Hermes、V8),iOS:JavaScriptCore(Apple 要求)
注:Hermes Engine在React-native 0.60.2 版本後支援
5.Hermes 的特色
預編譯位元組碼(引擎載入二進位制程式碼效率高於執行JS指令碼)
無 JIT 編譯器(減小了引擎大小,最佳化記憶體佔用,但直接執行 JS 指令碼的效能差於 V8 和 JSC)
針對移動端的垃圾回收策略
6.最佳化原理
7.已有專案接入 Hermes
升級 React-Native 及相關庫升級(成本較小)
因為 React-Native 0.60.x 變更為依賴 AndroidX,所以 Android 專案需要使用 28 以上版本編譯,適配 Android 高版本,且需要遷移到 AndroidX(成本較大)
修改 build.gradle,新增 Hermes 相關屬性及依賴(成本較小)
8.是否支援 CodePush?
釋出方式 | 是否支援 | 備註 |
9.除錯效率
10.ES 標準支援
11.效能調研
▍包大小分析
▍記憶體分析
▍TTI效能
React-Native Android 中主要是 Application onCreate 開始到 RN 元件渲染完成可互動的時間。
12.總結
本文作者 ▬ 王李坤 滴滴 | 高階軟體開發工程師 哲學程式設計師,是個氣管炎、偽學霸,主要研究移動端技術,目前負責終端技術的落地。相信“技術能夠改變世界”,喜歡學習新技術
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908606/viewspace-2653574/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VBScript Scripting Engine初探
- Hive技術初探Hive
- RN的快取策略探索快取
- 「Kotlin初探 | 掘金技術徵文 」Kotlin
- 技術分享 | ClickHouse-Keeper 初探
- 探索新技術機制
- 探索Google App Engine背後的奧祕GoAPP
- 資料庫壓縮技術探索資料庫
- TGDC | 探索人臉藝術背後的技術
- 技術分享 | show engine innodb status中Pages flushed up to 的含義
- 「SAP技術」SAP MM MPN物料的採購初探
- 【INDEX】Oracle19c 自動索引技術初探IndexOracle索引
- Internet Explorer漏洞分析(三)[上]——VBScript Scripting Engine初探
- 當我們在聊 RN 時,我們在聊什麼 | 技術點評
- 深入探索編譯插樁技術(二、AspectJ)編譯
- vivo直播應用技術實踐與探索
- TDSQL-C 並行查詢技術探索SQL並行
- 剖析Unreal Engine超真實人類的渲染技術Part 2 - 眼球渲染Unreal
- 宜信OCR技術探索之版面分析業務實踐|技術沙龍直播速記
- Spring Security框架中踢人下線技術探索Spring框架
- 文字輿情挖掘的技術探索和實踐
- 得物直播低延遲探索 | 得物技術
- 愛奇藝RND框架技術探索——架構與實現框架架構
- 中國銀行雲原生技術探索與實踐
- 雲原生技術領域的探索與實踐
- 對話摘要技術在美團的探索(SIGIR)
- 眾邦銀行雲原生技術研究與探索
- 情感分析技術在美團的探索與應用
- CFI技術新探索,struct_san今日登場Struct
- 探索支付寶賬單的技術實現
- 微前端架構初探以及我的前端技術盤點前端架構
- 高效動畫實現原理-Jetpack Compose 初探索動畫Jetpack
- 宜信OCR技術探索與實踐|直播速記
- 筆記 深入探索Android熱修復技術原理筆記Android
- 技術工坊|深度探索以太坊智慧合約(深圳)
- Web前端AR技術探索-導航中的應用Web前端
- 擁抱智慧,AI 影片編碼技術的新探索AI
- 視訊通訊關鍵技術探索及實踐