Facebook matala Hermes JavaScript afi

Facebook matala matala mama JavaScript afi Meli, sili ona lelei mo le faʻatinoina o talosaga e faʻavae i luga o le faʻavae Toe faʻafoʻi le tagata i luga ole tulaga Android. lagolago Hermes fausia i totonu i React Native amata i le aso nei 0.60.2 fa'amalolo. O le poloketi ua mamanuina e foia ai faʻafitauli i taimi umi amata mo le faʻaogaina o le JavaScript ma le faʻaaogaina o punaoa taua. Code tusia e i le C++ ma tufatufaina i lalo ole laisene MIT.

Faatasi ai ma le lelei o le faʻaaogaina o Hermes, o loʻo i ai se faʻaitiitiga o le taimi e amata ai le talosaga, faʻaitiitia le faʻaogaina o le mafaufau ma le faʻaitiitia o le tele o talosaga. Pe a faʻaaogaina le V8, o laʻasaga sili ona faʻaalu taimi o laʻasaga ia o le faʻavasegaina o le code source ma tuʻufaʻatasia i luga o le lele. Ua aumaia e Hermes nei laasaga i le tulaga o le fausiaina ma faʻatagaina talosaga e tuʻuina atu i le tulaga o le bytecode faʻatusatusa ma lelei.

Mo le faʻatinoina saʻo o le talosaga, o se masini faʻapipiʻi ua atiaʻe i totonu o le poloketi e faʻaaogaina ma le SemiSpace lapisi lapisi, lea e tufatufa atu poloka pe a manaʻomia (On-demand), lagolagoina le felauaiga ma le defragmentation o poloka, toe faʻafoʻi saoloto manatua i le faiga faʻaogaina, e aunoa ma se taimi su'esu'eina mea o lo'o i totonu o le faupu'ega atoa.

O le faagasologa o le JavaScript ua vaevaeina i ni vaega. Muamua, o faʻamatalaga autu o loʻo faʻavasegaina ma o se faʻataʻitaʻiga vavalalata o le faʻailoga ua gaosia (Hermes IR), faʻavae i luga o le faʻaaliga S.S.A. (Tulaga Nofo Tasi). E soso'o ai, o le sui o le vaeluagalemu o lo'o fa'agaioiina i totonu o se optimizer, lea e fa'aoga i luma static optimization techniques e fa'aliliu ai le code intermediate muamua i se fa'ata'ita'iga sili atu ona lelei a'o fa'asaoina le semantics muamua o le polokalame. I le laasaga mulimuli, o le bytecode mo le masini komepiuta resitalaina ua gaosia.

I totonu o le afi lagolagoina e vaega ole ECMAScript 2015 JavaScript standard (o le sini autu o le lagolagoina atoatoa) ma maua ai le fetaui ma le tele o talosaga React Native o iai. Ua filifili Hermes e le lagolagoina le faʻatinoina o le eval(), faʻatasi ai ma faʻamatalaga, mafaufauga (Reflect ma Proxy), Intl API ma nisi fuʻa i RegExp. Ina ia faʻatagaina Hermes i se React Native application, naʻo le faʻaopoopoina o le "enableHermes: true" filifiliga i le poloketi. E mafai foi ona fausia Hermes i le CLI mode, e mafai ai ona e faʻatinoina faila JavaScript mai le laina faʻatonu. O loʻo avanoa le faʻaogaina o le paie mo le faʻapipiʻiina, lea e mafai ai ona e le tuʻufaʻatasia le JavaScript i taimi uma i le faagasologa o le atinaʻe, ae ia faʻatupuina le bytecode i luga o le lele ua i luga o le masini.

I le taimi lava e tasi, e le o fuafua Facebook e faʻafetaui Hermes mo Node.js ma isi fofo, e taulaʻi naʻo luga o talosaga feaveaʻi (AOT compilation nai lo le JIT e sili ona lelei i le tulaga o masini feaveaʻi, lea e faʻatapulaʻaina le RAM ma le faʻagesegese Flash). Fa'ata'ita'iga fa'atinoga fa'atino na faia e tagata faigaluega a Microsoft faʻaaliape a faʻaaogaina Hermes, o le Microsoft Office talosaga mo le Android e avanoa mo le faʻaaogaina i le 1.1 sekone. pe a uma le amataga ma faʻaaogaina le 21.5MB o le RAM, aʻo faʻaaogaina le afi V8 e manaʻomia le 1.4 sekone e amata ai ma le faʻaaogaina o le mafaufau e 30MB.

Fa'aopoopo: Facebook lomia ia lava i'uga o su'ega. A faʻaaogaina Hermes ma le MatterMost talosaga, o le taimi e amata ai avanoa mo galuega (TTI, Time To Interact) na faʻaitiitia mai le 4.30 i le 2.01 sekone, o le tele o le APK package na faʻaititia mai le 41 i le 22 MB, ma le faʻaaogaina o le mafaufau mai le 185 i le 136. MB.

puna: opennet.ru

Faaopoopo i ai se faamatalaga