A Facebook kiadta a Hermes JavaScript motor forráskódját

Hermész

A Facebook megnyitotta a könnyű Hermes JavaScript motor forráskódját, A React Native Framework alapú alkalmazások futtatására optimalizálták az Android platformon.

A Facebook szoftvermérnök Marc Horowitz bemutatta az új JavaScript motort a 2019-es Chain React konferencián, Portland-ben, Oregonban. A Hermes egy új fejlesztői eszköz, amely az alkalmazásindítási teljesítmény javítására összpontosít, ugyanúgy, ahogy a Facebook már teszi az alkalmazásaival, és az alkalmazások hatékonyabbá tételét a belépő szintű okostelefonokon.

Hermészről

A Hermes támogatás a mai 0.60.2 verziótól kezdve beépül a React Native-ba. A projekt elismert megoldást jelent a natív JavaScript-alkalmazások hosszú indítási idejével és jelentős erőforrás-felhasználással. A kódot C ++ nyelven írják és az MIT licenc alatt terjesztik.

A Hermes használatának előnyei közül csökken az alkalmazás kezdési ideje, a memóriafelhasználás csökkenése és az alkalmazás méretének csökkenése.

Az alkalmazások gyorsítása dob az előkompilálás bytecode-ban történő használatával érhető el kompakt és hatékony az összeállítás szakaszában.

Az alkalmazás közvetlen futtatásához egy virtuális gépet használnak a projekt részeként kifejlesztett SemiSpace szemétgyűjtővel. A V8 esetében a leghosszabb lépések a forráskód elemzéséhez és menet közben történő fordításához.

A Hermes motor ezeket a szakaszokat a fordítási szakaszba viszi, és lehetővé teszi az alkalmazások optimalizált bájtkód formájában történő kézbesítését.

A JavaScript feldolgozása több szakaszra oszlik. Kezdetben a forráskód elemzésre kerül, és a köztes kódábrázolás (Hermes IR) jön létre az SSA reprezentáció (Statikus egyedi hozzárendelés) alapján.

Ezenkívül a közbenső ábrázolást az optimalizálóban dolgozzuk fel, amely proaktív statikus optimalizálási technikák segítségével alakítja át az elsődleges köztes kódot hatékonyabb köztes reprezentációvá, miközben megőrzi az eredeti program szemantikáját.

Végül az utolsó szakaszban létrehozzák a regisztrált virtuális gép bájtkódját.

Egy bemutatóban Marc Horowitz megmutatta, hogy a React Native alkalmazás Hermessel körülbelül két másodperccel gyorsabban töltődött be, mint ugyanaz az alkalmazás, amelyet Hermes nélkül töltöttek be.

Marc Horowitz gondoskodott arról, hogy Hermes is csökkentse az APK méretét a React Native tárolt alkalmazás 41 MB-os közepére, és megszüntette az alkalmazás memóriahasználatának negyedét.

Más szavakkal, a Hermes segítségével a fejlesztők arra késztethetik a felhasználókat, hogy gyorsabban lépjenek kapcsolatba egy olyan alkalmazással, amelynek kevesebb akadálya van, például lassú letöltési idők és korlátozások, amelyeket több alkalmazás okoz korlátozott memóriaforrásokkal, például: Különösen a szintes telefonok bemenetén.

A motor támogatja az ECMAScript 2015 JavaScript szabvány egy részét (a teljes támogatás a végcél), és kompatibilis a legtöbb meglévő React Native alkalmazással. A Hermes-ben úgy döntöttek, hogy nem támogatják az eval () helyi átadását, kifejezésekkel, reflexiókkal (Reflect és Proxy), Intl API API-val és néhány zászlóval a RegExp-ben.

A Hermes engedélyezéséhez a React Native alkalmazásban egyszerűen hozzá kell adnia az "enableHermes: true" opciót a projekthez. Lehetőség van a Hermes fordítására a CLI interfész módban is, amely lehetővé teszi tetszőleges JavaScript fájlok végrehajtását a parancssorból.

Ugyanakkor, A Facebook nem tervezi a Hermes adaptálását a Node.js és más megoldásokhoz, csak a mobilalkalmazásokra összpontosítva (Az AOT fordítása JIT helyett optimálisabb a React Native alapú mobilalkalmazásokkal összefüggésben).

A Microsoft előzetes teljesítményteszteket végzett, és kimutatta, hogy a Hermes használatakor a Microsoft Office for Android alkalmazás 1.1 másodperc alatt működik.

Indítás után 21.5 MB RAM-ot emészt fel, míg a V8-as motor használata közben 1.4 másodpercet tölt el az indítás, és a memóriafogyasztás 30 MB.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.