Facebook julkaisi Hermes-JavaScript-moottorin lähdekoodin

Hermes

Facebook on avannut kevyen Hermes JavaScript -moottorin lähdekoodin, optimoitu React Native -kehykseen perustuvien sovellusten ajamiseksi Android-alustalla.

Facebook-ohjelmistoinsinööri Marc Horowitz paljasti uuden JavaScript-moottorin vuoden 2019 Chain React -konferenssissa Portlandissa Oregonissa. Hermes on uusi kehitystyökalu, joka keskittyy parantamaan sovellusten käynnistyssuorituskykyä samalla tavalla kuin Facebook tekee jo sovelluksilleen ja tehostaa sovelluksia lähtötason älypuhelimissa.

Tietoa henkilöstä Hermes

Hermes-tuki on rakennettu React Native -sovellukseen tämän päivän versiosta 0.60.2 lähtien. Projekti tunnetaan ongelmien ratkaisemisesta, kun alkuperäiset JavaScript-sovellukset käynnistyvät pitkään ja resurssit kuluttavat huomattavasti. Koodi kirjoitetaan C ++: lla ja jaetaan MIT-lisenssin alla.

Hermesin käytön eduista sovelluksen aloitusaika lyhenee, muistin kulutuksen väheneminen ja sovelluksen koon pieneneminen.

Hakemusten nopeuttaminen tuoda markkinoille saavutetaan käyttämällä esikompilointia tavukoodissa kompakti ja tehokas kokoamisvaiheessa.

Suorita sovellus suoraan virtuaalikoneella, jota käytetään osana projektia kehitetyn SemiSpace-roskakorin kanssa. V8: n kanssa pisin vaiheet ovat lähdekoodin jäsentäminen ja kääntäminen lennossa.

Hermes-moottori vie nämä vaiheet kokoamisvaiheeseen ja mahdollistaa sovellusten toimittamisen optimoidun tavukoodin muodossa.

JavaScript-käsittely on jaettu useisiin vaiheisiin. Aluksi lähdekoodi jäsennetään ja välikoodiesitys (Hermes IR) luodaan SSA-esityksen (Static Unique Assignment) perusteella.

Lisäksi väliesitys käsitellään optimoijassa, joka käyttää ennakoivia staattisia optimointitekniikoita muuntaa ensisijainen välikoodi tehokkaammaksi väliesityksenä säilyttäen samalla alkuperäisen ohjelman semantiikan.

Viimeisessä vaiheessa muodostetaan rekisteröidyn virtuaalikoneen tavukoodi.

Demossa Marc Horowitz osoitti, että React Native -sovellus Hermesin kanssa se oli täysin ladattu noin kaksi sekuntia nopeammin kuin sama sovellus ladattu ilman Hermesiä.

Marc Horowitz varmisti, että Hermes pienensi myös APK: n kokoa React Native -sovelluksen 41 Mt: n keskelle ja eliminoi neljänneksen sovelluksen muistin käytöstä.

Toisin sanoen, Hermesin avulla kehittäjät voivat saada käyttäjät toimimaan nopeammin vuorovaikutuksessa sovelluksen kanssa, jolla on vähemmän esteitä, kuten hidas latausaika ja rajoitukset, jotka johtuvat useiden sovellusten jakamisesta rajallisilla muistiresursseilla, kuten: Erityisesti tasopuhelinten tuloissa.

Moottori tukee osan ECMAScript 2015 JavaScript -standardista (sen täysi tuki on lopullinen tavoite) ja on yhteensopiva useimpien nykyisten React Native -sovellusten kanssa. Hermesissä päätettiin olla tukematta eval (): n paikallista lähettämistä "lausekkeilla, heijastuksilla (Reflect ja Proxy), Intl API -sovellusliittymällä ja joillakin lipuilla RegExp: ssä.

Ota Hermes käyttöön React Native -sovelluksessa lisäämällä projektiin "enableHermes: true" -vaihtoehto. On myös mahdollista koota Hermes CLI-käyttöliittymätilassa, jonka avulla voit suorittaa mielivaltaisia ​​JavaScript-tiedostoja komentoriviltä.

Samalla Facebook ei aio mukauttaa Hermesia Node.js: lle ja muille ratkaisuille keskittyen vain mobiilisovelluksiin (AOT: n kokoaminen JIT: n sijasta on optimaalisempaa React Native -pohjaisten mobiilisovellusten yhteydessä).

Microsoft suoritti alustavat suorituskykytestit ja osoitti, että Hermesiä käytettäessä Microsoft Office for Android -sovellus toimii 1.1 sekunnissa.

Käynnistyksen jälkeen se kuluttaa 21.5 Mt RAM-muistia, kun taas V8-moottoria käytetään 1.4 sekuntia käynnistettäessä ja muistin kulutus on 30 Mt.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.