Facebook zverejnil zdrojový kód stroja JavaScript Hermes

Hermes

Facebook otvoril zdrojový kód ľahkého JavaScriptu Hermes, optimalizované pre spustenie aplikácií založených na architektúre React Native na platforme Android.

Softvérový inžinier spoločnosti Facebook Marc Horowitz odhalil nový motor JavaScriptu na konferencii Chain React 2019 v Portlande v Oregone. Hermes je nový vývojársky nástroj, ktorý sa zameriava na zlepšenie výkonu pri spúšťaní aplikácií rovnakým spôsobom, aký už Facebook robí pre svoje aplikácie, a na zefektívnenie aplikácií na základných smartfónoch.

O Hermesovi

Podpora Hermes je zabudovaná v React Native od dnešnej verzie 0.60.2. Tento projekt je uznávaný pre riešenie problémov s dlhými časmi spustenia natívnych aplikácií JavaScriptu a značnou spotrebou zdrojov. Kód je napísaný v C ++ a distribuovaný pod licenciou MIT.

Z výhod používania Hermes je zníženie začiatočného času aplikácie, pokles spotreby pamäte a zmenšenie veľkosti aplikácie.

Urýchlenie aplikácií spustenie je dosiahnuté použitím predkompilácie v bytekode kompaktný a efektívny vo fáze kompilácie.

Na priame spustenie aplikácie sa používa virtuálny stroj so zberačom odpadu SemiSpace vyvinutým ako súčasť projektu. Pri verzii V8 sú najdlhšie kroky na analýzu zdrojového kódu a jeho okamžitú kompiláciu.

Hermesov motor prechádza týmito fázami do fázy kompilácie a umožňuje doručovanie aplikácií vo forme optimalizovaného bajtového kódu.

Spracovanie JavaScriptu je rozdelené do niekoľkých etáp. Spočiatku sa zdrojový kód analyzuje a na základe zastúpenia SSA (Static Unique Assignment) sa vygeneruje prechodná reprezentácia kódu (Hermes IR).

Okrem toho je sprostredkovaná reprezentácia spracovaná v optimalizátore, ktorý pomocou proaktívnych statických optimalizačných techník prevádza primárny sprostredkujúci kód na efektívnejšiu sprostredkovanú reprezentáciu pri zachovaní sémantiky pôvodného programu.

Nakoniec v poslednej fáze sa vygeneruje bajtový kód pre registrovaný virtuálny stroj.

V ukážke Marc Horowitz ukázal, že aplikácia React Native s Hermesom bolo úplne načítané asi o dve sekundy rýchlejšie ako rovnaká aplikácia načítaná bez Hermesa.

Marc Horowitz sa postaral o to, aby Hermes zmenšil aj veľkosť súboru APK do stredu uloženej aplikácie React Native s veľkosťou 41 MB a eliminoval štvrtinu využitia pamäte aplikácie.

Inými slovami, vďaka Hermes môžu vývojári dosiahnuť, aby používatelia rýchlejšie komunikovali s aplikáciou s menším počtom prekážok, ako sú pomalé časy sťahovania a obmedzenia spôsobené viacerými aplikáciami zdieľajúcimi obmedzené pamäťové zdroje, ako napríklad: Najmä na úrovni telefónov.

Modul podporuje časť štandardu JavaScriptu ECMAScript 2015 (jeho úplná podpora je konečným cieľom) a je kompatibilný s väčšinou existujúcich aplikácií React Native. V Hermes bolo rozhodnuté nepodporovať lokálne prenášanie výrazov eval (), "s", reflexie (Reflect a Proxy), API Intl API a niektoré príznaky v RegExp.

Ak chcete povoliť Hermes v aplikácii React Native, jednoducho do projektu pridajte voľbu „enableHermes: true“. Hermes je tiež možné kompilovať v režime rozhrania CLI, čo umožňuje spúšťať ľubovoľné súbory JavaScriptu z príkazového riadku.

Súčasne Facebook neplánuje prispôsobovať Hermes pre Node.js a ďalšie riešenia, zameriava sa iba na mobilné aplikácie (kompilácia AOT namiesto JIT je optimálnejšia v kontexte mobilných aplikácií založených na React Native.)

Spoločnosť Microsoft vykonala predbežné testy výkonu a ukázala, že pri používaní Hermes je aplikácia Microsoft Office pre Android k dispozícii na prácu za 1.1 sekundy.

Po spustení spotrebuje 21.5 MB RAM a pri použití motora V8 sa pri štarte strávi 1.4 sekundy a spotreba pamäte je 30 MB.


Buďte prvý komentár

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.