Inilabas ng Facebook ang source code ng engine ng Hermes JavaScript

Hermes

Binuksan ng Facebook ang source code para sa magaan na engine ng Hermes JavaScript, na-optimize para sa pagpapatakbo ng React Native framework batay sa mga application sa Android platform.

Ang Facebook Software Engineer Inihayag ni Marc Horowitz ang bagong JavaScript engine sa 2019 Chain React conference sa Portland, Oregon. Ang Hermes ay isang bagong tool ng developer na nakatuon sa pagpapabuti ng pagganap ng pagsisimula ng app sa parehong paraan na ginagawa ng Facebook para sa mga app nito at ginagawang mas epektibo ang mga app sa mga smartphone sa antas ng pagpasok.

Tungkol kay Hermes

Ang suporta ni Hermes ay binuo sa React Native sa bersyon ngayon 0.60.2. Ang proyekto ay kinikilala para sa paglutas ng mga problema sa mahabang oras ng pagsisimula para sa katutubong mga aplikasyon ng JavaScript at makabuluhang pagkonsumo ng mapagkukunan. Ang code ay nakasulat sa C ++ at ipinamamahagi sa ilalim ng lisensya ng MIT.

Sa mga kalamangan ng paggamit ng Hermes, mayroong isang pagbawas sa oras ng pagsisimula ng aplikasyon, isang pagbawas sa pagkonsumo ng memorya at pagbawas sa laki ng application.

Pagpapabilis ng mga application ilunsad ay nakamit sa pamamagitan ng paggamit ng precompilation sa isang bytecode compact at mahusay sa yugto ng pagtitipon.

Upang direktang patakbuhin ang application, isang virtual machine ang ginagamit sa SemiSpace basurero na binuo bilang bahagi ng proyekto. Sa V8, ang pinakamahaba ay ang mga hakbang upang ma-parse ang source code at i-compile ito nang mabilis.

Dadalhin ng engine ng Hermes ang mga yugtong ito sa yugto ng pagtitipon at pinapayagan ang mga application na maihatid sa anyo ng na-optimize na byte code.

Ang pagproseso ng JavaScript ay nahahati sa maraming mga yugto. Sa una, ang pinagmulang code ay na-parse at ang representasyon ng intermediate code (Hermes IR) ay nabuo, batay sa representasyon ng SSA (Static Unique Assignment).

Bilang karagdagan, ang panggitnang representasyon ay pinoproseso sa optimizer, na gumagamit ng mga proactive static optimization na diskarte upang ma-convert ang pangunahing intermediate code sa isang mas mahusay na intermediate na representasyon, habang pinapanatili ang mga semantika ng orihinal na programa.

Sa wakas sa huling yugto, nabuo ang byte code para sa nakarehistrong virtual machine.

Sa isang demo, ipinakita ni Marc Horowitz na isang React Native application kasama si Hermes ganap itong na-load nang halos dalawang segundo nang mas mabilis kaysa sa parehong application na na-load nang wala si Hermes.

Tinitiyak ni Marc Horowitz na binawasan din ni Hermes ang laki ng APK sa gitna ng 41MB ng isang React na nakaimbak na app na XNUMXMB at tinanggal ang isang-kapat ng paggamit ng memorya ng app.

Sa madaling salita, kasama si Hermes, maaaring makuha ng mga developer ang mga gumagamit na makipag-ugnay nang mas mabilis sa isang application na may mas kaunting mga hadlang, tulad ng mabagal na oras ng pag-download at mga paghihigpit na dulot ng maraming mga application na nagbabahagi ng mga limitadong mapagkukunan ng memorya, tulad ng: Lalo na sa antas ng pag-input ng mga telepono.

Sinusuportahan ng engine ang bahagi ng pamantayan ng ECMAScript 2015 JavaScript (ang buong suporta nito ay ang layunin sa pagtatapos) at katugma sa karamihan ng mga umiiral na mga application ng React Native. Sa Hermes, napagpasyahan na huwag suportahan ang lokal na paglalagay ng eval (), "may" mga expression, repleksyon (Reflect at Proxy), Intl API API at ilang mga watawat sa RegExp.

Upang paganahin si Hermes sa React Native na application, idagdag lamang ang pagpipiliang "paganahin ang: totoo" sa proyekto. Posible ring ipunin ang Hermes sa mode ng interface ng CLI, na nagbibigay-daan sa iyo upang magpatupad ng di-makatwirang mga file ng JavaScript mula sa linya ng utos.

Kasabay nito, Hindi plano ng Facebook na iakma ang Hermes para sa Node.js at iba pang mga solusyon, na nakatuon lamang sa mga mobile application (Ang pag-iipon ng AOT sa halip na JIT ay mas mahusay sa konteksto ng React Native based mobile apps).

Nagsagawa ang Microsoft ng paunang mga pagsubok sa pagganap at ipinakita na kapag gumagamit ng Hermes, ang application ng Microsoft Office for Android ay magagamit upang gumana sa 1.1 segundo.

Matapos ang paglunsad at kumonsumo ito ng 21.5MB ng RAM, habang ginagamit ang V8 engine, ang 1.4 segundo ay ginugol sa paglulunsad, at ang pagkonsumo ng memorya ay 30MB.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.