您好,登錄后才能下訂單哦!
桔妹導(dǎo)讀:自從 Google 的 Flutter 發(fā)布之后,F(xiàn)acebook 對 React-Native 的迭代開始快了起來,優(yōu)化 React-Native 的性能表現(xiàn),避免被 Flutter 比下去。最近一個比較大的動作是開源了一個 JavaScript 引擎,并將其包含到 React-Native 中。那么這款引擎它有什么不同,相比 V8、JSC 這些 JavaScript 引擎又有什么優(yōu)勢呢,現(xiàn)在本文來為你揭曉。
1.Hermes 引擎是什么,優(yōu)勢有哪些?
重要的事情提前說:Hermes 引擎是 Facebook 研發(fā),在 React-Native Android 端用于替換 JavaScript Core 的 JavaScript 引擎。Hermes 引擎的優(yōu)勢是適合移動端的輕量級 JavaScript 引擎,使用 aot 編譯,可以減少 Android 端內(nèi)存使用,減小安裝包大小,提升執(zhí)行效率。
JavaScript 引擎是一個專門處理 JavaScript 腳本的虛擬機(jī),一般會附帶在網(wǎng)頁瀏覽器之中。
V8(Google)、JavaScriptCore(Apple)、SpiderMonkey(Firefox)
Weex,Android:V8,iOS:JavaScriptCore
RN,Android:JavaScriptCore(Hermes、V8),iOS:JavaScriptCore(Apple 要求)
注:Hermes Engine在React-native 0.60.2 版本后支持
預(yù)編譯字節(jié)碼(引擎加載二進(jìn)制代碼效率高于運(yùn)行JS腳本)
無 JIT 編譯器(減小了引擎大小,優(yōu)化內(nèi)存占用,但直接運(yùn)行 JS 腳本的性能差于 V8 和 JSC)
針對移動端的垃圾回收策略
升級 React-Native 及相關(guān)庫升級(成本較?。?/span>
因?yàn)?React-Native 0.60.x 變更為依賴 AndroidX,所以 Android 項(xiàng)目需要使用 28 以上版本編譯,適配 Android 高版本,且需要遷移到 AndroidX(成本較大)
修改 build.gradle,添加 Hermes 相關(guān)屬性及依賴(成本較?。?/span>
發(fā)布方式 | 是否支持 | 備注 |
本文作者 ? 王李坤 滴滴 | 高級軟件開發(fā)工程師 哲學(xué)程序員,是個氣管炎、偽學(xué)霸,主要研究移動端技術(shù),目前負(fù)責(zé)終端技術(shù)的落地。相信“技術(shù)能夠改變世界”,喜歡學(xué)習(xí)新技術(shù)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。