Facebook a lansat codul sursă al motorului JavaScript Hermes

Hermes

Facebook a deschis codul sursă pentru motorul JavaScript ușor Hermes, optimizat pentru rularea aplicațiilor bazate pe cadru React Native pe platforma Android.

Inginerul software Facebook Marc Horowitz a dezvăluit noul motor JavaScript la conferința Chain React din 2019 din Portland, Oregon. Hermes este un nou instrument pentru dezvoltatori, care se concentrează pe îmbunătățirea performanțelor de pornire a aplicațiilor, la fel cum Facebook face deja pentru aplicațiile sale și pentru a face aplicațiile mai eficiente pe smartphone-urile entry-level.

Despre Hermes

Suportul Hermes este integrat în React Native începând cu versiunea de astăzi 0.60.2. Proiectul este recunoscut pentru rezolvarea problemelor cu timpi de pornire lungi pentru aplicațiile JavaScript native și consum semnificativ de resurse. Codul este scris în C ++ și distribuit sub licența MIT.

Dintre avantajele utilizării Hermes, există o reducere a timpului de început al aplicației, o scădere a consumului de memorie și o scădere a dimensiunii aplicației.

Accelerarea aplicațiilor lansa se realizează utilizând precompilarea într-un bytecode compact și eficient în etapa de compilare.

Pentru a rula aplicația direct, o mașină virtuală este utilizată cu colectorul de gunoi SemiSpace dezvoltat ca parte a proiectului. Cu V8, cei mai lungi sunt pașii pentru a analiza codul sursă și a-l compila din mers.

Motorul Hermes duce aceste etape la etapa de compilare și face posibilă livrarea aplicațiilor sub formă de cod de octet optimizat.

Procesarea JavaScript este împărțită în mai multe etape. Inițial, codul sursă este analizat și se generează reprezentarea intermediară a codului (Hermes IR), pe baza reprezentării SSA (Static Unique Assignment).

În plus, reprezentarea intermediară este procesată în optimizator, care utilizează tehnici proactive de optimizare statică pentru a converti codul intermediar primar într-o reprezentare intermediară mai eficientă, păstrând în același timp semantica programului original.

În cele din urmă, în ultima etapă, este generat codul de octeți pentru mașina virtuală înregistrată.

Într-o demonstrație, Marc Horowitz a arătat că o aplicație React Native cu Hermes a fost încărcat complet cu aproximativ două secunde mai repede decât aceeași aplicație încărcată fără Hermes.

Marc Horowitz s-a asigurat că Hermes a redus și dimensiunea APK-ului până la mijlocul celor 41 MB de aplicație stocată React Native și a eliminat un sfert din utilizarea memoriei aplicației.

Cu alte cuvinte, cu Hermes, dezvoltatorii pot determina utilizatorii să interacționeze mai rapid cu o aplicație cu mai puține obstacole, cum ar fi timpul de descărcare lent și restricțiile cauzate de mai multe aplicații care partajează resurse de memorie limitate, cum ar fi: Mai ales la intrarea de telefoane la nivel.

Motorul acceptă o parte a standardului JavaScript ECMAScript 2015 (suportul său complet este scopul final) și este compatibil cu majoritatea aplicațiilor existente React Native. În Hermes, s-a decis să nu se accepte distribuirea locală a eval (), expresii „cu”, reflecții (Reflect și Proxy), API API Intl și unele stegulețe în RegExp.

Pentru a activa Hermes în aplicația React Native, pur și simplu adăugați opțiunea „enableHermes: true” la proiect. De asemenea, este posibil să compilați Hermes în modul de interfață CLI, care vă permite să executați fișiere JavaScript arbitrare din linia de comandă.

În același timp, Facebook nu intenționează să adapteze Hermes pentru Node.js și alte soluții, concentrându-se doar pe aplicații mobile (compilarea AOT în loc de JIT este mai optimă în contextul aplicațiilor mobile bazate pe React Native).

Microsoft a efectuat teste preliminare de performanță și a arătat că atunci când utilizați Hermes, aplicația Microsoft Office pentru Android este disponibilă pentru a funcționa în 1.1 secunde.

După lansare și consumă 21.5 MB de RAM, în timp ce utilizați motorul V8, la lansare se petrec 1.4 secunde, iar consumul de memorie este de 30 MB.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.