Facebook izlaida Hermes JavaScript motora avota kodu

Hermes

Facebook ir atvēris vieglā Hermes JavaScript dzinēja avota kodu, optimizēts, lai palaistu React Native Framework bāzes lietojumprogrammas Android platformā.

Facebook programmatūras inženieris Marks Horovics atklāja jauno JavaScript dzinēju 2019. gada Chain React konferencē Portlendā, Oregonā. Hermes ir jauns izstrādātāja rīks, kas koncentrējas uz lietotņu palaišanas veiktspējas uzlabošanu tādā pašā veidā, kā Facebook jau dara savām lietotnēm, un padarīt lietotnes efektīvākas sākuma līmeņa viedtālruņos.

Par Hermesu

Hermes atbalsts ir iebūvēts React Native no šodienas 0.60.2 versijas. Projekts ir atzīts par problēmu risināšanu ar ilgu vietējo JavaScript lietojumprogrammu palaišanas laiku un ievērojamu resursu patēriņu. Kods ir rakstīts C ++ un izplatīts ar MIT licenci.

Starp Hermes izmantošanas priekšrocībām ir samazināts pieteikuma sākuma laiks, atmiņas patēriņa samazināšanās un lietojumprogrammas lieluma samazināšanās.

Pieteikumu paātrināšana palaišana tiek sasniegts, izmantojot pirmskompilāciju baitkodā kompakts un efektīvs sastādīšanas posmā.

Lai tieši palaistu lietojumprogrammu, tiek izmantota virtuālā mašīna kopā ar projekta ietvaros izstrādāto atkritumu savācēju SemiSpace. Izmantojot V8, visilgākie ir avota koda analizēšanas un apkopošanas soļi.

Hermes motors pārņem šos posmus līdz kompilācijas posmam un ļauj piegādāt lietojumprogrammas optimizēta baita koda veidā.

JavaScript apstrāde ir sadalīta vairākos posmos. Sākumā avota kods tiek parsēts un tiek ģenerēts starpposma koda attēlojums (Hermes IR), pamatojoties uz SSA attēlojumu (Static Unique Assignment).

Turklāt starpposma attēlojums tiek apstrādāts optimizatorā, kas izmanto proaktīvas statiskas optimizācijas metodes, lai pārveidotu primāro starpkodu efektīvākā starpstāvoklī, vienlaikus saglabājot sākotnējās programmas semantiku.

Visbeidzot pēdējā posmā tiek ģenerēts reģistrētās virtuālās mašīnas baitu kods.

Demonstrācijā Marks Horovics parādīja, ka lietotne React Native ar Hermesu tā tika pilnībā ielādēta apmēram divas sekundes ātrāk nekā tā pati lietotne, kas ielādēta bez Hermesa.

Marks Horovics pārliecinājās, ka arī Hermess samazināja APK lielumu līdz React Native glabātās lietotnes 41 MB vidum un izslēdza ceturtdaļu lietotnes atmiņas patēriņa.

Citiem vārdiem sakot, ar Hermes izstrādātāji var likt lietotājiem ātrāk mijiedarboties ar lietojumprogrammu, kurā ir mazāk šķēršļu, piemēram, lēns lejupielādes laiks un ierobežojumi, ko rada vairākas lietojumprogrammas, kurām ir kopīgi ierobežoti atmiņas resursi, piemēram: ievade.

Dzinējs atbalsta ECMAScript 2015 JavaScript standarta daļu (pilns atbalsts ir galīgais mērķis) un ir saderīgs ar lielāko daļu esošo React Native lietojumprogrammu. Hermesā tika nolemts neatbalstīt vietējo eval (), "ar" izteicienu, refleksiju (Reflect un Proxy), Intl API API un dažu karodziņu lietošanu RegExp.

Lai iespējotu Hermes lietojumprogrammā React Native, vienkārši pievienojiet projektam opciju "enableHermes: true". Ir arī iespējams kompilēt Hermes CLI saskarnes režīmā, kas ļauj patvaļīgus JavaScript failus izpildīt no komandrindas.

Tajā pašā laikā Facebook neplāno pielāgot Hermes Node.js un citiem risinājumiem, koncentrējoties tikai uz mobilajām lietojumprogrammām (AOT apkopošana JIT vietā ir optimālāka React Native balstītu mobilo lietotņu kontekstā).

Microsoft veica sākotnējus veiktspējas testus un parādīja, ka, lietojot Hermes, Microsoft Office Android lietojumprogramma ir pieejama darbam 1.1 sekundē.

Pēc palaišanas tas patērē 21.5 MB RAM, vienlaikus izmantojot V8 motoru, palaišanas laikā tiek tērētas 1.4 sekundes, un atmiņas patēriņš ir 30 MB.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.