Facebook avaldas Hermese JavaScripti mootori lähtekoodi

Hermes

Facebook on avanud kerge Hermes JavaScripti mootori lähtekoodi, optimeeritud React Native raamistikupõhiste rakenduste käitamiseks Android-platvormil.

Facebooki tarkvarainsener Marc Horowitz avalikustas uue JavaScripti mootori 2019. aasta Chain Reactsi konverentsil Portlandis Oregonis. Hermes on uus arendaja tööriist, mis keskendub rakenduste käivitamise jõudluse parandamisele samamoodi nagu Facebook seda juba oma rakenduste jaoks teeb ja rakendusi algtaseme nutitelefonides tõhusamaks muudab.

Hermese kohta

Hermese tugi on React Native sisse ehitatud alates tänasest versioonist 0.60.2. Projekti tunnustatakse probleemide lahendamise eest pika käivitamisajaga natiivsete JavaScripti rakenduste jaoks ja märkimisväärse ressursitarbimisega. Kood on kirjutatud C ++ keeles ja levitatakse MIT-litsentsi all.

Hermese kasutamise eelistest on vähenenud rakenduse algusaeg, mälu tarbimise vähenemine ja rakenduse suuruse vähenemine.

Taotluste kiirendamine käivitamine saavutatakse eelkompileerimise abil baitkoodis kompaktne ja tõhus koostamise etapis.

Rakenduse otse käivitamiseks kasutatakse virtuaalset masinat koos projekti raames välja töötatud SemiSpace prügikogujaga. V8-ga on pikimad sammud lähtekoodi sõelumiseks ja selle kompileerimiseks lennult.

Hermese mootor viib need etapid kompileerimise etapini ja võimaldab rakendusi edastada optimeeritud baidikoodi kujul.

JavaScripti töötlemine on jagatud mitmeks etapiks. Esialgu sõelutakse lähtekood ja genereeritakse vahekoodi esitus (Hermes IR), mis põhineb SSA esitusel (Static Unique Assignment).

Lisaks töödeldakse vaheesitlust optimeerijas, mis kasutab ennetavat staatilist optimeerimise tehnikat, et teisendada esmane vahekood tõhusamaks vahesaadeteks, säilitades samas algse programmi semantika.

Viimases etapis genereeritakse registreeritud virtuaalse masina baitkood.

Demos demonstreeris Marc Horowitz, et Hermesiga on see React Native rakendus see laaditi täielikult umbes kaks sekundit kiiremini kui sama rakendus, mis laaditi ilma Hermeseta.

Marc Horowitz veendus, et Hermes vähendas ka APK suurust React Native'i salvestatud rakenduse 41 MB keskele ja välistas veerandi rakenduse mälukasutusest.

Teisisõnu, arendajad saavad Hermese abil panna kasutajad kiiremini suhtlema rakendusega, kus on vähem takistusi, näiteks aeglane allalaadimisaeg ja piirangud, mis on põhjustatud mitmest piiratud mäluressurssi jagavast rakendusest, näiteks: Eriti tasemel telefonide sisendis.

Mootor toetab osa ECMAScript 2015 JavaScripti standardist (selle täielik tugi on lõppeesmärk) ja ühildub enamiku olemasolevate React Native rakendustega. Hermeses otsustati mitte toetada eval (), väljendite, peegelduste (Reflect and Proxy), Intl API API ja mõnede RegExp-i lippude kohalikku ülekandmist.

Hermese lubamiseks rakenduses React Native lisage projekti lihtsalt valik "enableHermes: true". Hermesi on võimalik kompileerida ka CLI-liidese režiimis, mis võimaldab teil suvalisi JavaScripti faile käsurealt käivitada.

Samal ajal Facebook ei plaani Hermesi Node.js-i ja muude lahenduste jaoks kohandada, keskendudes ainult mobiilirakendustele (AIT-i koostamine JIT-i asemel on optimaalsem React Native-põhiste mobiilirakenduste kontekstis.)

Microsoft viis läbi esialgsed jõudlustestid ja näitas, et Hermese kasutamisel on rakendus Microsoft Office Androidile saadaval 1.1 sekundiga.

Pärast käivitamist kulutab see 21.5 MB RAM-i, V8 mootori kasutamisel kulutatakse käivitamisel 1.4 sekundit ja mälutarve on 30 MB.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.