Facebook mepere injin Hamis JavaScript sitere na ya

Facebook mepere injin JavaScript dị fechaa Hermes, kachasị maka ịgba ọsọ ngwa dabere na usoro Gbanwee nwa na android ikpo okwu. Hamis na-akwado arụnyere n'ime na React Native malite na mwepụta 0.60.2 taa. Emebere oru ngo a iji dozie nsogbu na ogologo oge mmalite maka ngwa Javascript nke obodo yana oriri akụrụngwa. Koodu dere site na na C++ ma kesaa n'okpuru ikike MIT.

N'ime uru nke iji Hamis, enwere mbelata oge mmalite ngwa, mbelata oriri ebe nchekwa yana mbelata nha ngwa. Mgbe ị na-eji V8, usoro kachasị na-ewe oge bụ usoro nke ịkọwapụta koodu isi mmalite na ịchịkọta ya na ofufe. Hamis na-ebute usoro ndị a n'ọkwa a na-ewulite ma na-enye ohere ịnye ngwa n'ụdị nke bytecode kọmpat na nke ọma.

Iji mezuo ngwa ahụ ozugbo, a na-eji igwe mebere emepụtara n'ime ọrụ ahụ na onye na-anakọta ihe mkpofu SemiSpace, nke na-ekesa blocks naanị ka ọ dị mkpa (On-chọrọ), na-akwado ịkwaga na defragmentation nke ngọngọ, na-eweghachi ebe nchekwa nwere onwe ya na sistemụ arụmọrụ, na-enweghị oge ụfọdụ. na-enyocha ihe dị n'ime obo ahụ dum.

A na-ekewa nhazi Javascript n'ọtụtụ usoro. Nke mbụ, a na-atụgharị ederede isi mmalite wee mepụta nnochite anya etiti nke koodu ahụ (Hamis IR), dabere na nnọchite anya S.S.A. (Ndụ nrụnye Static). Na-esote, a na-ahazi ihe nnochite anya n'etiti n'ime njikarịcha, nke na-etinye usoro njikarịcha n'ihu static iji gbanwee koodu etiti etiti ka ọ bụrụ ihe nnọchiteanya nke ọma na-arụ ọrụ nke ọma ka ọ na-echekwa ihe ọmụmụ mbụ nke mmemme ahụ. N'oge ikpeazụ, a na-emepụta bytecode maka igwe mebere edebanye aha.

N'ime igwe na -akwado ya akụkụ nke ọkọlọtọ JavaScript ECMAScript 2015 (ihe mgbaru ọsọ kacha bụ ịkwado ya nke ọma) ma na-enye ndakọrịta na ọtụtụ ngwa Native React dị. Hamis ekpebiela na ha agaghị akwado mkpochapụ eval (), na nkwupụta, ntụgharị (Reflect and Proxy), Intl API na ụfọdụ ọkọlọtọ na RegExp. Iji mee ka Hamis nwee ike na ngwa React Native, tinye naanị nhọrọ “enableHermes: eziokwu” na ọrụ ahụ. Ọ ga-ekwe omume iwulite Hamis na ọnọdụ CLI, na-enye gị ohere ịme faịlụ Javascript aka ike site na ahịrị iwu. Ụdị nchịkọta umengwụ dị maka nbipu, nke na-enye gị ohere ịghara ịchịkọta Javascript oge ọ bụla n'oge usoro mmepe, kama ịmepụta bytecode na ofufe ugbua na ngwaọrụ ahụ.

N'otu oge ahụ, Facebook adịghị eme atụmatụ imeghari Hamis maka Node.js na ngwọta ndị ọzọ, na-elekwasị anya naanị na ngwa mkpanaaka (Nchịkọta AOT kama JIT bụ ihe kachasị mma n'ihe gbasara sistemụ mkpanaka, nke nwere oke RAM na ngwa ngwa Flash). Nnwale arụmọrụ izizi nke ndị ọrụ Microsoft mere kpugherena mgbe ị na-eji Hamis, ngwa Microsoft Office maka gam akporo ga-adị maka ojiji na nkeji 1.1. mgbe mmalite ma na-eri 21.5MB nke RAM, mgbe ị na-eji V8 engine ọ na-ewe 1.4 sekọnd ịmalite na ebe nchekwa oriri bụ 30MB.

Mgbakwunye: Facebook bipụtara nsonaazụ ule nke onwe. Mgbe ị na-eji Hamis na ngwa MatterMost, oge ịmalite nnweta ọrụ (TTI, Time To Interact) belatara site na 4.30 ruo 2.01 sekọnd, nha ngwugwu APK belatara site na 41 ruo 22 MB, yana oriri ebe nchekwa site na 185 ruo 136. MB.

isi: opennet.ru

Tinye a comment