Motera JavaScript Hermes avy amin'ny Facebook

Moteur JavaScript maivana avy amin'ny Facebook Hermes, namboarina ho an'ny fampiharana fampiharana mifototra amin'ny rafitra Hevero ny natiora amin'ny sehatra Android. Hermes fanohanana Namboariny-In ao amin'ny React Native manomboka amin'ny famoahana 0.60.2 androany. Ny tetikasa dia natao hamahana olana amin'ny fotoana fanombohana maharitra ho an'ny fampiharana JavaScript teratany sy ny fanjifana loharano lehibe. fehezan-dalàna nosoratan'i amin'ny C++ ary zaraina amin'ny alàlan'ny lisansa MIT.

Anisan'ny tombony amin'ny fampiasana Hermes, misy ny fihenan'ny fotoana fanombohana ny fampiharana, ny fihenan'ny fanjifana fahatsiarovana ary ny fampihenana ny haben'ny fampiharana. Rehefa mampiasa V8, ny dingana mandany fotoana be indrindra dia ny dingana amin'ny famakafakana ny kaody loharano sy ny fanangonana azy amin'ny lalitra. Hermes dia mitondra ireo dingana ireo eo amin'ny sehatry ny fananganana ary mamela ny fampiharana hatolotra amin'ny endrika bytecode compact sy mahomby.

Mba hanatanterahana mivantana ny fampiharana, milina virtoaly novolavolaina ao anatin'ny tetikasa dia ampiasaina miaraka amin'ny mpanangom-bokatra SemiSpace, izay mizara sakana raha ilaina (On-demand), manohana ny fihetsehana sy ny defragmentation ny blocs, mamerina ny fahatsiarovana nafahana amin'ny rafitra miasa, tsy misy tsindraindray. fitarafana ny ao anatin'ny antontam-bato manontolo.

Mizara dingana maromaro ny fanodinana JavaScript. Voalohany, ny lahatsoratry ny loharano dia nozaraina ary avoaka ny fanehoana anelanelan'ny kaody (Hermes IR), mifototra amin'ny fanehoana S.S.A. ( Assignment tokana static). Manaraka, ny solontena mpanelanelana dia karakaraina amin'ny optimizer, izay mampihatra ny teknikan'ny fanatsarana static mba hanovana ny kaody mpanelanelana voalohany ho solontena manelanelana mahomby kokoa sady mitahiry ny semantika tany am-boalohany amin'ny fandaharana. Amin'ny dingana farany, ny bytecode ho an'ny milina virtoaly voasoratra anarana dia avoaka.

Ao amin'ny motera tohanan'ny ampahany amin'ny fenitra JavaScript ECMAScript 2015 (ny tanjona faratampony dia ny hanohana azy tanteraka) ary manome fampifanarahana amin'ny ankamaroan'ny fampiharana React Native efa misy. Nanapa-kevitra i Hermes fa tsy hanohana ny famonoana eval(), miaraka amin'ny fanambarana, fandinihana (Reflect sy Proxy), Intl API ary saina sasany ao amin'ny RegExp. Mba hahafahan'i Hermes amin'ny fampiharana React Native, ampio fotsiny ny safidy "enableHermes: true" amin'ny tetikasa. Azo atao ihany koa ny manangana Hermes amin'ny fomba CLI, ahafahanao manatanteraka rakitra JavaScript tsy misy dikany avy amin'ny tsipika baiko. Misy fomba fanangonana kamo ho an'ny debugging, izay ahafahanao tsy manangona JavaScript isaky ny dingana fampandrosoana, fa mamorona bytecode amin'ny lalitra efa eo amin'ny fitaovana.

Mandritra izany fotoana izany, ny Facebook dia tsy mikasa ny hampifanaraka an'i Hermes ho an'ny Node.js sy ny vahaolana hafa, tsy mifantoka afa-tsy amin'ny rindranasa finday (AOT compilation fa tsy JIT no tena tsara indrindra amin'ny tontolon'ny rafitra finday, izay manana RAM voafetra sy Flash miadana kokoa). Fitsapana fampisehoana mialoha nataon'ny mpiasa Microsoft nambarafa rehefa mampiasa Hermes dia azo ampiasaina ao anatin'ny 1.1 segondra ny fampiharana Microsoft Office ho an'ny Android. aorian'ny fanombohana ary mandany RAM 21.5MB, raha mampiasa motera V8 kosa dia mila 1.4 segondra vao manomboka ary 30MB ny fanjifana fahatsiarovana.

Fanampiny: Facebook namoaka valim-panadinana manokana. Rehefa mampiasa an'i Hermes miaraka amin'ny fampiharana MatterMost dia nihena 4.30 ka hatramin'ny 2.01 segondra ny fotoana hanombohana ny fahafahana miasa (TTI, Time To Interact), ny haben'ny fonosana APK dia nihena avy amin'ny 41 ka hatramin'ny 22 MB, ary ny fanjifana fahatsiarovana avy amin'ny 185 ka hatramin'ny 136. MB.

Source: opennet.ru

Add a comment