Facebook wuxuu furay matoorka Hermes JavaScript

Facebook wuxuu furay matoorka JavaScript fudud Hermes, loo habeeyay socodsiinta codsiyada ku salaysan qaabka React Native on madal Android. Hermes taageero ku dhisan Gudaha Dhaladka React ee ka bilaabmaya maanta 0.60.2 siideynta. Mashruuca waxaa loogu talagalay in lagu xalliyo mashaakilaadka waqtiyada dheer ee bilowga ah ee codsiyada JavaScript ee asalka ah iyo isticmaalka kheyraadka muhiimka ah. Koodhka waxaa qoray gudaha C++ oo lagu qaybiyey shatiga MIT.

Faa'iidooyinka isticmaalka Hermes, waxaa jira hoos u dhac ku yimaada wakhtiga bilowga codsiga, hoos u dhaca isticmaalka xusuusta iyo hoos u dhigista cabbirka codsiga. Markaad isticmaalayso V8, marxaladaha ugu badan ee waqti-qaadka ah waa marxaladaha kala-saarida koodhka isha oo lagu ururiyo duulista. Hermes wuxuu tillaabooyinkan u keenaa heerka dhismaha wuxuuna u oggolaadaa codsiyada in lagu keeno qaab bytecode kooban oo hufan.

Si toos ah loo fuliyo codsiga, mashiinka farsamada ee lagu sameeyay mashruuca dhexdiisa waxaa loo isticmaalaa ururiyaha qashinka SemiSpace, kaas oo u qaybiya blocks kaliya marka loo baahdo (Baahida), taageerta dhaqdhaqaaqa iyo jajabinta blocks, soo celinta xusuusta xorta ah ee nidaamka qalliinka, iyada oo aan waqtiyo kala duwan. sawiridda waxa ku jira taallo dhan.

Habaynta JavaScript waxa loo qaybiyaa dhawr marxaladood. Marka hore, qoraallada isha ayaa la kala saaray waxaana la sameeyay matalid dhexdhexaad ah oo koodka ah (Hermes IR), oo ku salaysan matalaadda SSA (Hawlgal kali ah oo taagan). Marka xigta, matalaadda dhexdhexaadka ah waxaa lagu farsameeyaa hagaajin, kaas oo khuseeya farsamooyinka hagaajinta joogtada ah ee hore si loogu beddelo koodka dhexe ee dhexdhexaadka ah ee waxtarka leh ee dhexdhexaadka ah iyada oo la ilaalinayo micnaha asalka ah ee barnaamijka. Marxaladda ugu dambeysa, bytecode ee mashiinka farsamada ee diiwaangashan ayaa la soo saarayaa.

Matoorka dhexdiisa taageeray qayb ka mid ah halbeegga ECMAScript 2015 JavaScript (ujeedka ugu dambeeya waa in si buuxda loo taageero) oo waxa ay siisaa waafaqsan inta badan codsiyada Native React ee jira. Hermes wuxuu go'aansaday inuusan taageerin fulinta maxalliga ah ee eval(), odhaahyo, milicsi (Reflect and Proxy), Intl API iyo calamada qaar ee RegExp. Si aad awood ugu siiso Hermes codsiga Dhaladka React, kaliya ku dar "enableHermes: run" doorashada mashruuca. Waxa kale oo suurtogal ah in lagu dhiso Hermes qaabka CLI, taas oo kuu ogolaanaysa inaad fuliso faylasha JavaScript ee aan macquul ahayn ee khadka taliska. Habka isku-darka caajiska ah ayaa diyaar u ah sifeynta, kaas oo kuu ogolaanaya inaadan ururin JavaScript mar kasta inta lagu jiro habka horumarinta, laakiin si aad u abuurto bytecode duulista horeba qalabka.

Isla mar ahaantaana, Facebook ma qorsheyneyso in ay la qabsato Hermes ee Node.js iyo xalalka kale, diiradda saaraya kaliya codsiyada moobiilka (AOT-u-ururinta halkii JIT waa mid aad u fiican marka la eego hababka moobiilka, kuwaas oo leh RAM xaddidan iyo Flash gaabis ah). Imtixaan shaqo oo horudhac ah oo ay sameeyeen shaqaalaha Microsoft shaaca ka qaadayin marka la isticmaalayo Hermes, codsiga Microsoft Office ee Android uu noqdo diyaar in la isticmaalo 1.1 ilbiriqsi gudahood. Ka dib marka la bilaabo oo uu isticmaalo 21.5MB ee RAM ah, halka marka la isticmaalayo V8 engine ay qaadanayso 1.4 ilbiriqsi in la bilaabo iyo isticmaalka xusuusta waa 30MB.

Intaa waxaa dheer: Facebook la daabacay natiijada imtixaan u gaar ah. Markaad isticmaaleyso Hermes codsiga MatterMost, waqtiga la bilaabayo helitaanka shaqada (TTI, Time To Interact) wuxuu hoos uga dhacay 4.30 ilaa 2.01 sekan, cabbirka xirmada APK ayaa laga dhimay 41 ilaa 22 MB, iyo isticmaalka xusuusta 185 ilaa 136 MB.

Source: opennet.ru

Add a comment