Facebook opinn Hermes JavaScript vél

Facebook opin létt JavaScript vél Hermes, fínstillt til að keyra forrit byggt á ramma React Native á Android pallinum. Hermes stuðningur innbyggð í React Native frá og með útgáfu 0.60.2 í dag. Verkefnið er hannað til að leysa vandamál með langan ræsingartíma fyrir innfædd JavaScript forrit og umtalsverða auðlindanotkun. Kóði skrifað af í C++ og dreift undir MIT leyfinu.

Meðal kosta þess að nota Hermes er minnkun á ræsingartíma forrita, minnkun á minnisnotkun og minnkun á stærð forrita. Þegar V8 er notað eru tímafrekustu stigin stigin að þátta frumkóðann og setja hann saman á flugi. Hermes færir þessi skref á byggingarstigið og gerir kleift að afhenda forritum í formi þétts og skilvirks bækakóða.

Til að keyra forritið beint er sýndarvél sem þróuð er innan verkefnisins notuð með SemiSpace sorphirðu, sem dreifir kubbum aðeins eftir þörfum (á eftirspurn), styður flutning og sundrun kubba, skilar losuðu minni til stýrikerfisins, án reglubundinnar að skanna innihald allrar haugsins.

JavaScript vinnsla er skipt í nokkur stig. Fyrst eru frumtextarnir flokkaðir og mynduð milliframsetning kóðans (Hermes IR), byggt á framsetningunni S.S.A. (Static Single Assignment). Næst er milliframsetningin unnin í fínstillingu, sem beitir truflanir hagræðingaraðferðum áfram til að umbreyta aðal millikóðanum í skilvirkari milliframsetningu á sama tíma og upprunaleg merkingarfræði forritsins er varðveitt. Á síðasta stigi er bækikóði fyrir skráða sýndarvélina myndaður.

Í vélinni stutt af hluti af ECMAScript 2015 JavaScript staðlinum (lokamarkmiðið er að styðja hann að fullu) og veitir eindrægni við flest núverandi React Native forrit. Hermes hefur ákveðið að styðja ekki staðbundna framkvæmd á eval(), með yfirlýsingum, endurspeglun (Reflect og Proxy), Intl API og nokkrum fánum í RegExp. Til að virkja Hermes í React Native forriti skaltu bara bæta „enableHermes: true“ valkostinum við verkefnið. Það er líka hægt að smíða Hermes í CLI ham, sem gerir þér kleift að keyra handahófskenndar JavaScript skrár frá skipanalínunni. Latur söfnunarhamur er í boði fyrir kembiforrit, sem gerir þér kleift að safna JavaScript ekki saman í hvert skipti á meðan á þróunarferlinu stendur, heldur að búa til bætikóða á flugi sem þegar er á tækinu.

Á sama tíma ætlar Facebook ekki að aðlaga Hermes fyrir Node.js og aðrar lausnir, með áherslu eingöngu á farsímaforrit (AOT samantekt í stað JIT er best í samhengi við farsímakerfi, sem hafa takmarkað vinnsluminni og hægara Flash). Bráðabirgðaprófun á frammistöðu framkvæmd af starfsmönnum Microsoft í ljósað þegar Hermes er notað verður Microsoft Office forritið fyrir Android tiltækt til notkunar á 1.1 sekúndu. eftir gangsetningu og eyðir 21.5MB af vinnsluminni, en þegar V8 vélin er notuð tekur það 1.4 sekúndur að ræsa og minnisnotkun er 30MB.

Viðbót: Facebook birt eigin prófunarniðurstöður. Þegar Hermes var notað með MatterMost forritinu minnkaði tíminn til að hefja vinnuframboð (TTI, Time To Interact) úr 4.30 í 2.01 sekúndur, stærð APK pakkans minnkaði úr 41 í 22 MB og minnisnotkun úr 185 í 136 MB.

Heimild: opennet.ru

Bæta við athugasemd