فیس بک اوپن سورس ہرمیس جاوا اسکرپٹ انجن

فیس بک اوپن سورس ہلکا پھلکا جاوا اسکرپٹ انجن ہرمیس، فریم ورک کی بنیاد پر ایپلیکیشنز چلانے کے لیے بہتر بنایا گیا ہے۔ مقامی رائے دیں اینڈرائیڈ پلیٹ فارم پر۔ ہرمیس سپورٹ بلٹ میں آج کی 0.60.2 ریلیز کے ساتھ شروع ہونے والے رد عمل کے مقامی میں۔ پروجیکٹ کو مقامی JavaScript ایپلی کیشنز اور اہم وسائل کی کھپت کے لیے طویل آغاز کے اوقات کے ساتھ مسائل کو حل کرنے کے لیے ڈیزائن کیا گیا ہے۔ کوڈ لکھا ہوا C++ میں اور MIT لائسنس کے تحت تقسیم کیا گیا۔

ہرمیس استعمال کرنے کے فوائد میں، ایپلیکیشن شروع ہونے کے وقت میں کمی، میموری کی کھپت میں کمی اور ایپلی کیشن کے سائز میں کمی ہے۔ V8 استعمال کرتے وقت، سب سے زیادہ وقت لینے والے مراحل سورس کوڈ کو پارس کرنے اور اسے فلائی پر مرتب کرنے کے مراحل ہیں۔ ہرمیس ان مراحل کو تعمیراتی مرحلے میں لاتا ہے اور ایپلیکیشنز کو کمپیکٹ اور موثر بائیک کوڈ کی شکل میں ڈیلیور کرنے کی اجازت دیتا ہے۔

ایپلیکیشن کو براہ راست عمل میں لانے کے لیے، پروجیکٹ کے اندر تیار کی گئی ایک ورچوئل مشین سیمی اسپیس کوڑا اٹھانے والے کے ساتھ استعمال کی جاتی ہے، جو بلاکس کو صرف ضرورت کے مطابق تقسیم کرتی ہے (آن ڈیمانڈ)، بلاکس کی منتقلی اور ڈیفراگمنٹیشن کو سپورٹ کرتی ہے، آپریٹنگ سسٹم میں فری میموری کو واپس کرتی ہے۔ پورے ڈھیر کے مواد کو اسکین کرنا۔

جاوا اسکرپٹ پروسیسنگ کو کئی مراحل میں تقسیم کیا گیا ہے۔ سب سے پہلے، ماخذ کے متن کو پارس کیا جاتا ہے اور کوڈ کی ایک درمیانی نمائندگی پیدا ہوتی ہے (ہرمیس آئی آر) نمائندگی کی بنیاد پر دکھائے تعلیم کی مہم (جامد سنگل اسائنمنٹ)۔ اس کے بعد، انٹرمیڈیٹ نمائندگی کو ایک اصلاح کار میں پروسیس کیا جاتا ہے، جو پروگرام کے اصل سیمنٹکس کو محفوظ رکھتے ہوئے پرائمری انٹرمیڈیٹ کوڈ کو زیادہ موثر انٹرمیڈیٹ نمائندگی میں تبدیل کرنے کے لیے فارورڈ سٹیٹک آپٹیمائزیشن تکنیک کا اطلاق کرتا ہے۔ آخری مرحلے پر، رجسٹرڈ ورچوئل مشین کے لیے بائی کوڈ تیار ہوتا ہے۔

انجن میں کی طرف سے حمایت ECMAScript 2015 JavaScript معیار کا حصہ ہے (حتمی مقصد اس کی مکمل حمایت کرنا ہے) اور زیادہ تر موجودہ React Native ایپلی کیشنز کے ساتھ مطابقت فراہم کرتا ہے۔ Hermes نے RegExp میں بیانات، عکاسی (Reflect and Proxy)، Intl API اور کچھ جھنڈوں کے ساتھ eval() کے مقامی عمل درآمد کی حمایت نہ کرنے کا فیصلہ کیا ہے۔ React Native ایپلی کیشن میں Hermes کو فعال کرنے کے لیے، صرف "enableHermes: true" آپشن کو پروجیکٹ میں شامل کریں۔ ہرمیس کو CLI موڈ میں بنانا بھی ممکن ہے، جس سے آپ کو کمانڈ لائن سے صوابدیدی JavaScript فائلوں کو چلانے کی اجازت ملتی ہے۔ ڈیبگنگ کے لیے ایک سست کمپلیشن موڈ دستیاب ہے، جو آپ کو ڈیولپمنٹ کے عمل کے دوران ہر بار جاوا اسکرپٹ کو کمپائل کرنے کی اجازت نہیں دیتا ہے، بلکہ ڈیوائس پر پہلے سے موجود فلائی پر بائیک کوڈ بنانے کی اجازت دیتا ہے۔

اسی وقت، فیس بک ہرمیس کو Node.js اور دیگر حلوں کے لیے ڈھالنے کا ارادہ نہیں رکھتا، صرف موبائل ایپلی کیشنز پر توجہ مرکوز کرتا ہے (موبائل سسٹمز کے تناظر میں JIT کی بجائے AOT کمپائلیشن سب سے زیادہ بہتر ہے، جس میں محدود RAM اور سست فلیش ہے)۔ مائیکروسافٹ کے ملازمین کے ذریعہ ابتدائی کارکردگی کی جانچ انکشافکہ ہرمیس استعمال کرتے وقت، مائیکروسافٹ آفس ایپلیکیشن برائے اینڈرائیڈ 1.1 سیکنڈ میں استعمال کے لیے دستیاب ہو جاتی ہے۔ سٹارٹ اپ کے بعد اور 21.5MB RAM استعمال کرتا ہے، جبکہ V8 انجن استعمال کرتے وقت اسے شروع ہونے میں 1.4 سیکنڈ لگتے ہیں اور میموری کی کھپت 30MB ہے۔

اضافہ: فیس بک опубликовал اپنے ٹیسٹ کے نتائج. MatterMost ایپلی کیشن کے ساتھ Hermes کا استعمال کرتے وقت، کام کے لیے دستیابی شروع کرنے کا وقت (TTI، Interact کرنے کا وقت) 4.30 سے ​​کم ہو کر 2.01 سیکنڈ ہو گیا، APK پیکیج کا سائز 41 سے 22 MB، اور میموری کی کھپت 185 سے کم ہو کر 136 ہو گئی۔ ایم بی

ماخذ: opennet.ru

نیا تبصرہ شامل کریں