Cloudflare، Mozilla ۽ Facebook ترقي ڪري ٿو BinaryAST جاوا اسڪرپٽ لوڊ ڪرڻ کي تيز ڪرڻ لاءِ

Cloudflare، Mozilla، Facebook ۽ Bloomberg کان انجنيئر تجويز ڪيل نئين شڪل ثنائي جي شروعات برائوزر ۾ سائيٽون کولڻ وقت جاوا اسڪرپٽ ڪوڊ جي ترسيل ۽ پروسيسنگ کي تيز ڪرڻ لاءِ. BinaryAST تجزيي واري مرحلي کي سرور طرف منتقل ڪري ٿو ۽ اڳ ۾ ئي ٺاهيل خلاصو نحو جو وڻ فراهم ڪري ٿو (AST). BinaryAST حاصل ڪرڻ تي، برائوزر فوري طور تي اڳتي وڌائي سگھي ٿو تاليف واري اسٽيج تي، جاوا اسڪرپٽ سورس ڪوڊ کي پارس ڪندي.

چڪاس لاءِ تيار ڪيل MIT لائسنس جي تحت فراهم ڪيل حوالن تي عمل درآمد. Node.js حصن کي parsing لاء استعمال ڪيو ويندو آهي، ۽ اصلاح ۽ AST نسل لاء ڪوڊ Rust ۾ لکيل آهي. برائوزر پاسي جي حمايت
BinaryAST اڳ ۾ ئي موجود آهي رات جي اسيمبلي فائر فاڪس. BinaryAST ۾ انڪوڊر ٻئي استعمال ڪري سگھجن ٿا آخري سائيٽ ٽولنگ ليول تي ۽ پراڪسي يا مواد پهچائڻ واري نيٽ ورڪ جي پاسي کان ٻاهرين سائيٽن جي اسڪرپٽ جي پيڪنگ لاءِ. في الحال، ڪم ڪندڙ گروپ پاران BinaryAST جي معيار جو عمل شروع ٿي چڪو آهي ECMA TC39، جنهن کان پوءِ فارميٽ موجوده مواد ڪمپريشن طريقن سان گڏ رهڻ جي قابل هوندو، جهڙوڪ gzip ۽ brotli.

Cloudflare، Mozilla ۽ Facebook ترقي ڪري ٿو BinaryAST جاوا اسڪرپٽ لوڊ ڪرڻ کي تيز ڪرڻ لاءِ

Cloudflare، Mozilla ۽ Facebook ترقي ڪري ٿو BinaryAST جاوا اسڪرپٽ لوڊ ڪرڻ کي تيز ڪرڻ لاءِ

جڏهن پروسيسنگ جاوا اسڪرپٽ، وقت جو هڪ اهم مقدار ڪوڊ جي لوڊ ڪرڻ ۽ پارس ڪرڻ واري مرحلي ۾ خرچ ڪيو ويندو آهي. انهي ڳالهه تي غور ڪندي ته ڪيترن ئي مشهور سائيٽن تي ڊائون لوڊ ڪيل جاوا اسڪرپٽ جو حجم 10 MB جي ويجهو آهي (مثال طور، LinkedIn - 7.2 MB، Facebook - 7.1 MB، Gmail - 3.9 MB)، جاوا اسڪرپٽ جي شروعاتي پروسيسنگ هڪ اهم دير سان متعارف ڪرايو آهي. برائوزر جي پاسي تي پارس ڪرڻ وارو مرحلو پڻ سست ٿي ويو آھي مڪمل طور تي اڏامڻ ۾ ناڪام ٿيڻ جي ڪري مڪمل طور تي فلائي تي AST ٺاھڻ جي ناڪامي جي ڪري جيئن ڪوڊ لوڊ ٿيل آھي (براؤزر کي لوڊ ٿيڻ جي مڪمل ٿيڻ لاءِ ڪوڊ بلاڪ جو انتظار ڪرڻو پوندو، جيئن افعال جي پڄاڻي، حاصل ڪرڻ لاءِ. موجوده عناصر کي پارس ڪرڻ لاءِ موجود معلومات).

اهي جزوي طور تي مسئلو حل ڪرڻ جي ڪوشش ڪري رهيا آهن ڪوڊ کي ورهائڻ سان گهٽ ۾ گهٽ ۽ ٺهيل فارم ۾، انهي سان گڏ برائوزر طرفان ٺاهيل بائيٽ ڪوڊ کي ڪيش ڪندي. جديد سائيٽن تي، ڪوڊ اڪثر ڪري اپڊيٽ ڪيو ويندو آهي، تنهنڪري ڪيشنگ صرف جزوي طور تي مسئلو حل ڪري ٿو. WebAssembly هڪ حل ٿي سگهي ٿو، پر اهو ڪوڊ ۾ واضح ٽائپنگ جي ضرورت آهي ۽ موجوده JavaScript ڪوڊ جي پروسيسنگ کي تيز ڪرڻ لاء مناسب ناهي.

ٻيو اختيار اهو آهي ته جاوا اسڪرپٽ اسڪرپٽ جي بدران تيار ڪيل مرتب ڪيل بائيٽ ڪوڊ پهچائڻ، پر برائوزر انجڻ ڊولپرز ان جي خلاف آهن ڇو ته ٽئين پارٽي بائيٽ ڪوڊ جي تصديق ڪرڻ ڏکيو آهي، ان جي سڌي پروسيسنگ ويب اسٽريٽفڪيشن جو سبب بڻجي سگهي ٿي، اضافي سيڪيورٽي خطرا پيدا ٿين ٿا، ۽ ترقي هڪ عالمگير بائيٽ ڪوڊ فارميٽ گهربل آهي.

BinaryAST توهان کي اجازت ڏئي ٿي توهان جي موجوده ڪوڊ ڊولپمينٽ ۽ ترسيل ماڊل ۾ بغير نئين بائيٽ ڪوڊ ٺاهڻ يا JavaScript ٻولي تبديل ڪرڻ جي. BinaryAST فارميٽ ۾ ڊيٽا جي سائيز گھٽ ۾ گھٽ جاوا اسڪرپٽ ڪوڊ سان مقابلي جي قابل آهي، ۽ پروسيسنگ جي رفتار کي ختم ڪرڻ سان ذريعو متن جي پارسنگ مرحلي کي خاص طور تي وڌائي ٿو. ان کان علاوه، فارميٽ تاليف کي بائيٽ ڪوڊ ڪرڻ جي اجازت ڏئي ٿو جيئن BinaryAST لوڊ ٿيل آهي، مڪمل ڊيٽا جي انتظار جي بغير. ان کان علاوه، سرور جي پاسي تي پارس ڪرڻ توهان کي واپس ڪيل BinaryAST نمائندگي مان غير استعمال ٿيل افعال ۽ غير ضروري ڪوڊ کي خارج ڪرڻ جي اجازت ڏئي ٿو، جيڪو، جڏهن برائوزر جي پاسي تي پارس ڪري ٿو، غير ضروري ٽرئفڪ کي پارس ڪرڻ ۽ منتقل ڪرڻ ۾ وقت ضايع ڪري ٿو.

BinaryAST جي هڪ خصوصيت پڻ پڙهڻ جي قابل JavaScript کي بحال ڪرڻ جي صلاحيت آهي جيڪا بلڪل اصل نسخي وانگر ناهي، پر لفظي طور تي هڪجهڙائي آهي ۽ ان ۾ متغير ۽ افعال جا ساڳيا نالا شامل آهن (BinaryAST نالا محفوظ ڪري ٿو، پر پوزيشن بابت معلومات محفوظ نٿو ڪري. ڪوڊ، فارميٽنگ ۽ تبصرا). سڪي جو ٻيو پاسو نئين حملي جي ویکٹرز جو اڀرڻ آهي، پر ڊولپرز جي مطابق، اهي تمام ننڍا ۽ وڌيڪ ڪنٽرول هوندا آهن جڏهن متبادل استعمال ڪرڻ جي ڀيٽ ۾، جهڙوڪ بائيٽ ڪوڊ ڊسٽريبيوشن.

facebook.com ڪوڊ جي ٽيسٽ ڏيکاري ٿي ته جاوا اسڪرپٽ کي پارس ڪرڻ 10-15٪ سي پي يو وسيلن جو استعمال ڪري ٿو ۽ پارس ڪرڻ ۾ بائيٽ ڪوڊ ۽ JIT لاءِ شروعاتي ڪوڊ جنريشن کان وڌيڪ وقت لڳي ٿو. SpiderMonkey انجڻ ۾، مڪمل طور تي AST ٺاھڻ جو وقت 500-800 ms وٺندو آھي، ۽ BinaryAST جي استعمال ھن انگ کي 70-90٪ گھٽائي ڇڏيو آھي.
عام طور تي، اڪثر ويب فائر ورڪز لاءِ، جڏهن BinaryAST استعمال ڪري رهيا آهن، JavaScript parsing وقت 3-10% گھٽجي ويندو آهي موڊ ۾ بغير اصلاح جي ۽ 90-97% گھٽجي ويندو آهي جڏهن غير استعمال ٿيل ڪمن کي نظر انداز ڪرڻ جو موڊ فعال هوندو آهي.
جڏهن هڪ 1.2 MB جاوا اسڪرپٽ ٽيسٽ سيٽ هلائيندي، BinaryAST استعمال ڪندي شروعاتي وقت کي ڊيسڪ ٽاپ سسٽم (Intel i338) تي 314 کان 7 ms ۽ موبائل ڊيوائس (HTC One M2019) تي 1455 کان 8 ms تائين تيز ڪرڻ جي اجازت ڏني.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو