Facebook ya bude injin Hermes JavaScript

Facebook ya bude injin JavaScript mai nauyi mai nauyi Hamisa, ingantacce don gudanar da aikace-aikacen bisa tsarin Sake sake 'yan ƙasar akan dandalin Android. Hamisa goyon baya ginannen ciki a cikin React Native farawa da sakin 0.60.2 na yau. An tsara aikin don magance matsaloli tare da dogon lokacin farawa don aikace-aikacen JavaScript na asali da kuma amfani da albarkatu masu mahimmanci. Lambar rubuta ta a cikin C++ kuma an rarraba a ƙarƙashin lasisin MIT.

Daga cikin fa'idodin amfani da Hamisu, akwai raguwar lokacin fara aikace-aikacen, raguwar amfani da ƙwaƙwalwar ajiya da raguwar girman aikace-aikacen. Lokacin amfani da V8, matakan da suka fi cin lokaci su ne matakan tantance lambar tushe da kuma haɗa ta akan tashi. Hamisu ya kawo waɗannan matakan zuwa matakin ginin kuma yana ba da damar aikace-aikacen da za a iya isar da su ta hanyar ƙarami da ingantaccen bytecode.

Don aiwatar da aikace-aikacen kai tsaye, ana amfani da injin kama-da-wane da aka haɓaka a cikin aikin tare da mai tara shara na SemiSpace, wanda ke rarraba tubalan kawai kamar yadda ake buƙata (Akan buƙata), yana tallafawa motsi da ɓarna tubalan, dawo da ƙwaƙwalwar ajiyar da aka saki zuwa tsarin aiki, ba tare da lokaci-lokaci ba. Ana duba abubuwan da ke cikin duka.

Ana rarraba sarrafa JavaScript zuwa matakai da yawa. Da farko, ana karkatar da rubutun tushen kuma an samar da matsakaicin wakilcin lambar (Hamis IR), bisa wakilci S.S.A. (Ayyukan Ayyuka Guda Daya A tsaye). Bayan haka, ana sarrafa wakilcin tsaka-tsaki a cikin na'urar ingantawa, wanda ke aiwatar da dabarun ingantawa na gaba don canza lambar tsaka-tsaki ta farko zuwa madaidaicin wakilci mai inganci yayin kiyaye ainihin ma'anar shirin. A mataki na ƙarshe, ana samar da bytecode don injin kama-da-wane mai rijista.

A cikin injin goyan bayan wani ɓangare na ma'auni na ECMAScript 2015 JavaScript (maƙasudin manufa shine cikakken goyan bayansa) kuma yana ba da dacewa tare da yawancin aikace-aikacen React Native. Hamisa ya yanke shawarar ba zai goyi bayan aiwatar da eval (), tare da bayanai, tunani (Reflect and Proxy), Intl API da wasu tutoci a cikin RegExp. Don kunna Hamisu a cikin aikace-aikacen ɗan ƙasa na React, kawai ƙara zaɓin “enableHermes: gaskiya” zuwa aikin. Hakanan yana yiwuwa a gina Hamisu a yanayin CLI, yana ba ku damar aiwatar da fayilolin JavaScript na sabani daga layin umarni. Ana samun yanayin haɗaɗɗiyar kasala don gyara kuskure, wanda ke ba ku damar haɗa JavaScript kowane lokaci yayin aiwatar da haɓakawa, amma don samar da bytecode akan tashi a kan na'urar.

A lokaci guda kuma, Facebook baya shirin daidaita Hamisu don Node.js da sauran mafita, yana mai da hankali kan aikace-aikacen wayar hannu kawai (Tarin AOT maimakon JIT shine mafi kyawun yanayin tsarin wayar hannu, waɗanda ke da ƙarancin RAM da hankali Flash). Gwajin aikin farko da ma'aikatan Microsoft ke gudanarwa saukarcewa lokacin amfani da Hermes, aikace-aikacen Microsoft Office don Android ya zama samuwa don amfani a cikin daƙiƙa 1.1. Bayan farawa kuma yana cinye 21.5MB na RAM, yayin amfani da injin V8 yana ɗaukar daƙiƙa 1.4 don farawa kuma yawan ƙwaƙwalwar ajiyar yana 30MB.

Ƙari: Facebook wallafa sakamakon gwajin kansa. Lokacin amfani da Hamisu tare da aikace-aikacen MatterMost, lokacin fara samun aiki (TTI, Time To Interact) ya ragu daga 4.30 zuwa 2.01 seconds, an rage girman fakitin APK daga 41 zuwa 22 MB, da amfani da ƙwaƙwalwar ajiya daga 185 zuwa 136 MB.

source: budenet.ru

Add a comment