ෆේස්බුක් විසින් Hermes JavaScript එන්ජින් කේතය විවෘත කරන ලදී

Facebook විවෘත මූලාශ්‍ර සැහැල්ලු JavaScript එන්ජිම හර්මීස්, රාමුව මත පදනම්ව යෙදුම් ධාවනය සඳහා ප්‍රශස්ත කර ඇත ස්වදේශීය ලෙස ප්‍රතික්‍රියා කරන්න Android වේදිකාව මත. හර්මීස් සහාය ඉදි කර ඇත අද 0.60.2 නිකුතුවට අනුව React Native හි. දේශීය ජාවාස්ක්‍රිප්ට් යෙදුම් සහ සැලකිය යුතු සම්පත් පරිභෝජනය සඳහා දිගු ආරම්භක වේලාවන් සමඟ ගැටලු විසඳීම ව්‍යාපෘතියේ අරමුණයි. කේතය ලියන ලද්දේ C++ හි සහ MIT බලපත්‍රය යටතේ බෙදා හරිනු ලැබේ.

හර්මීස් භාවිතා කිරීමේ වාසි අතර, යෙදුම් දියත් කිරීමේ කාලය අඩුවීම, මතක පරිභෝජනය අඩුවීම සහ යෙදුමේ ප්රමාණය අඩු වීම. V8 භාවිතා කරන විට, මූලාශ්‍ර කේතය විග්‍රහ කිරීම සහ පියාසර කිරීමේදී එය සම්පාදනය කිරීමේ අදියර දිගම වේ. හර්මීස් මෙම පියවරයන් ගොඩනැගීමේ අදියරට ගෙන එන අතර සංයුක්ත සහ කාර්යක්ෂම බයිට්කෝඩ් ආකාරයෙන් යෙදුම් ලබා දීමට ඉඩ සලසයි.

යෙදුම සෘජුව ක්‍රියාත්මක කිරීම සඳහා, අර්ධ අභ්‍යවකාශ කසළ එකතු කරන්නා සමඟ ව්‍යාපෘතියේ රාමුව තුළ සංවර්ධනය කරන ලද අතථ්‍ය යන්ත්‍රයක් භාවිතා කරනු ලැබේ, එය අවශ්‍ය විට (ඉල්ලුම මත) පමණක් කුට්ටි වෙන් කරයි, නිදහස් කළ ආපසු පැමිණීමත් සමඟ කුට්ටි චලනය කිරීමට සහ විකෘති කිරීමට සහාය වේ. සම්පූර්ණ ගොඩේම අන්තර්ගතය වරින් වර පරිලෝකනය නොකර මෙහෙයුම් පද්ධතියට මතකය.

JavaScript සැකසුම් අදියර කිහිපයකට බෙදා ඇත. මුලදී, මූලාශ්‍ර පාඨ විග්‍රහ කර ඇති අතර කේතයේ අතරමැදි නිරූපණයක් ජනනය වේ (හර්මීස් IR) නියෝජනය මත පදනම්ව එස්එස්ඒ (ස්ථිතික තනි පැවරුම). ඊළඟට, අතරමැදි නිරූපණය ප්‍රශස්තකරණය තුළ සකසනු ලබන අතර, එය වැඩසටහනේ මුල් අර්ථකථනය ආරක්ෂා කරමින් ප්‍රාථමික අතරමැදි කේතය වඩාත් කාර්යක්ෂම අතරමැදි නිරූපණයක් බවට පරිවර්තනය කිරීම සඳහා ඉදිරි ස්ථිතික ප්‍රශස්තකරණ ශිල්පීය ක්‍රම යොදයි. අවසාන අදියරේදී, රෙජිස්ටර් අථත්‍ය යන්ත්‍රය සඳහා බයිට් කේතය ජනනය වේ.

එන්ජිම තුළ සහාය දක්වයි ECMAScript 2015 JavaScript ප්‍රමිතියේ කොටසක් (අවසාන ඉලක්කය පූර්ණ සහාය වේ) සහ දැනට පවතින බොහෝ ප්‍රතික්‍රියා ස්වදේශීය යෙදුම් සමඟ ගැළපීම සහතික කරයි. දේශීය eval(), "සමඟ" ප්‍රකාශන, පරාවර්තනය (පරාවර්තනය සහ ප්‍රොක්සි), API Intl API සහ RegExp හි සමහර ධජ සඳහා සහය නොදැක්වීමට හර්මීස් තීරණය කළේය. ප්‍රතික්‍රියා ස්වදේශීය යෙදුමක හර්මීස් සක්‍රීය කිරීමට, ව්‍යාපෘතියට "enableHermes: true" විකල්පය එක් කරන්න. විධාන රේඛාවෙන් අත්තනෝමතික ජාවාස්ක්‍රිප්ට් ගොනු ක්‍රියාත්මක කිරීමට ඔබට ඉඩ සලසමින් CLI මාදිලියේ හර්මීස් තැනීමටද හැකිය. නිදොස්කරණය සඳහා, කම්මැලි-සංග්‍රහ කිරීමේ මාදිලියක් ඇත, එමඟින් සංවර්ධන ක්‍රියාවලියේදී සෑම විටම ජාවාස්ක්‍රිප්ට් සම්පාදනය නොකිරීමට ඉඩ සලසයි, නමුත් දැනටමත් උපාංගයේ ඇති පියාසර කිරීමේදී බයිට්කේත ජනනය කිරීමට.

ඒ අතරම, Facebook ජංගම යෙදුම් සඳහා පමණක් අවධානය යොමු කරමින් Node.js සහ වෙනත් විසඳුම් සඳහා Hermes අනුවර්තනය කිරීමට සැලසුම් නොකරයි (සීමිත RAM සහ මන්දගාමී ෆ්ලෑෂ් ඇති ජංගම පද්ධති සන්දර්භය තුළ JIT වෙනුවට AOT සම්පාදනය වඩාත් ප්‍රශස්ත වේ). පූර්ව මයික්‍රොසොෆ්ට් කාර්ය සාධන පරීක්ෂාව අනාවරණයහර්මීස් භාවිතා කරන විට, Android සඳහා Microsoft Office යෙදුම තත්පර 1.1 කින් වැඩ සඳහා ලබා ගත හැකිය. දියත් කිරීමෙන් පසු 21.5MB RAM ප්‍රමාණයක් පරිභෝජනය කරන අතර V8 එන්ජිම භාවිතා කරන විට එය ආරම්භ කිරීමට තත්පර 1.4ක් ගත වන අතර මතක පරිභෝජනය 30MB වේ.

ඇඩෝනය: ෆේස්බුක් ප්රකාශයට පත් තමන්ගේම පරීක්ෂණ ප්රතිඵල. MatterMost යෙදුම සමඟ Hermes භාවිතා කරන විට, Time To Interact (TTI) තත්පර 4.30 සිට 2.01 දක්වා ද, APK ප්‍රමාණය 41 සිට 22 MB දක්වා ද, මතක පරිභෝජනය 185 සිට 136 MB දක්වා ද අඩු විය.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න