Facebook je objavio izvorni kod Hermes JavaScript mehanizma

Hermes

Facebook je otvorio izvorni kod za lagani Hermes JavaScript motor, optimizovan za pokretanje aplikacija zasnovanih na React Native framework-u na Android platformi.

Facebook softver inženjer Marc Horowitz otkrio je novi JavaScript motor na konferenciji Chain React 2019 u Portlandu u Oregonu. Hermes je novi alat za programere koji se fokusira na poboljšanje performansi pokretanja aplikacija na isti način na koji to Facebook već čini za svoje aplikacije i stvaranje aplikacija efikasnijim na početnim pametnim telefonima.

O Hermesu

Podrška za Hermes ugrađena je u React Native od današnje verzije 0.60.2. Projekt je prepoznat po rješavanju problema s dugim vremenima pokretanja izvornih JavaScript aplikacija i značajnom potrošnjom resursa. Kôd je napisan na C ++ i distribuiran pod MIT licencom.

Od prednosti upotrebe Hermesa, smanjuje se vrijeme početka aplikacije, smanjenje potrošnje memorije i smanjenje veličine aplikacije.

Ubrzanje aplikacija lansiranje postiže se korištenjem pretkompilacije u bajt kodu kompaktan i efikasan u fazi sastavljanja.

Za izravno pokretanje aplikacije koristi se virtualna mašina sa SemiSpace sakupljačem smeća razvijenim kao dio projekta. Kod V8 najduži su koraci za raščlanjivanje izvornog koda i njegovo trenutno kompajliranje.

Hermesov mehanizam vodi ove faze do faze kompajliranja i omogućava isporuku aplikacija u obliku optimiziranog bajt koda.

Obrada JavaScript-a podijeljena je u nekoliko faza. U početku se izvorni kod raščlanjuje i generira se posredni prikaz koda (Hermes IR), zasnovan na SSA predstavljanju (Static Unique Assignment).

Pored toga, posredni prikaz se obrađuje u optimizatoru, koji koristi proaktivne tehnike statičke optimizacije za pretvaranje primarnog međukoda u učinkovitiji posrednički prikaz, uz očuvanje semantike izvornog programa.

Konačno, u posljednjoj fazi generira se bajt kôd za registriranu virtualnu mašinu.

U demonstraciji, Marc Horowitz pokazao je da React Native aplikacija s Hermesom u potpunosti se učitao oko dvije sekunde brže od iste aplikacije koja se učitavala bez Hermesa.

Marc Horowitz pobrinuo se da Hermes također smanji veličinu APK-a do sredine React Native pohranjene aplikacije od 41 MB i eliminirala je četvrtinu upotrebe memorije aplikacije.

Drugim riječima, s Hermesom programeri mogu navesti korisnike da brže komuniciraju s aplikacijom s manje prepreka, kao što su sporo vrijeme preuzimanja i ograničenja uzrokovana višestrukim aplikacijama koje dijele ograničene resurse memorije, kao što su: Pogotovo na unosu telefona.

Motor podržava dio ECMAScript 2015 JavaScript standarda (krajnja je podrška potpuna podrška) i kompatibilan je s većinom postojećih React Native aplikacija. U Hermesu je odlučeno da se ne podržava lokalno lijevanje evala (), "sa" izrazima, refleksijama (Reflect i Proxy), API-jem Intl API i nekim zastavicama u RegExp-u.

Da biste omogućili Hermes u React Native aplikaciji, jednostavno dodajte opciju "enableHermes: true" u projekt. Također je moguće kompajlirati Hermes u načinu CLI sučelja, što vam omogućuje izvršavanje proizvoljnih JavaScript datoteka iz naredbenog retka.

Istovremeno, Facebook ne planira prilagoditi Hermes za Node.js i druga rješenja, fokusirajući se samo na mobilne aplikacije (kompajliranje AOT-a umjesto JIT-a je optimalnije u kontekstu mobilnih aplikacija zasnovanih na React Native-u).

Microsoft je izvršio preliminarne testove performansi i pokazao da je prilikom upotrebe Hermesa aplikacija Microsoft Office za Android dostupna za rad u 1.1 sekundi.

Nakon lansiranja i troši 21.5 MB RAM-a, dok se koristi V8 motor, na pokretanje se troši 1.4 sekunde, a potrošnja memorije je 30 MB.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.