يصل Dart 2.15 مع مجموعات معزولة وتحسينات وقت التشغيل والمزيد

كشفت Google مؤخرًا عن إطلاق برنامج نسخة جديدة من لغة البرمجة Dart 2.15 ، الذي يواصل تطوير فرع Dart 2 المعاد تصميمه جذريًا وهذا يختلف عن الإصدار الأصلي للغة Dart عن طريق استخدام الكتابة الثابتة القوية (يمكن استنتاج الأنواع تلقائيًا ، لذا فإن تحديد الأنواع غير مطلوب ، ولكن لم تعد الكتابة الديناميكية مستخدمة ويتم حسابها في البداية ، يتم تعيين النوع إلى متغير ثم يتم تطبيق فحص صارم على النوع).

في هذا الإصدار الجديد ، تم تنفيذ العديد من التحسينات وقبل كل شيء إدخال بعض الميزات الجديدة مثل المجموعات المعزولة وأيضًا الحلول لبعض نقاط الضعف المكتشفة.

الميزات الرئيسية الجديدة لـ Dart 2.15

في هذا الإصدار الجديد من Dart 2.15 يتم توفير الأدوات للتنفيذ المتوازي السريع للمهام مع عزل وحدة التحكم.

إلى جانب ذلك في الأنظمة متعددة النواة ، وقت التشغيل دارت ، بشكل افتراضي ، يدير كود التطبيق على نواة وحدة المعالجة المركزية ويستخدم نوى أخرى لأداء مهام النظام مثل الإدخال / الإخراج غير المتزامن أو الكتابة إلى الملفات أو إجراء مكالمات الشبكة.

حداثة أخرى يقدمها Dart 2.15 هي مفهوم جديد ، مجموعات معزولة ، (مجموعات عزل) السماح بالوصول المشترك إلى هياكل البيانات الداخلية المختلفة في عزلة تنتمي إلى نفس المجموعة ، والتي يمكن أن تقلل بشكل كبير من النفقات العامة عند التواصل مع الوكلاء في المجموعة. على سبيل المثال ، بدء عزل إضافي على تجمع موجود يكون أسرع 100 مرة ويتطلب ذاكرة أقل من 10 إلى 100 مرة من بدء عزل منفصل ، مما يلغي الحاجة إلى تهيئة هياكل بيانات البرنامج.

على الرغم من حقيقة أنه في الكتل المعزولة في المجموعة ، لا يزال الوصول المشترك إلى الكائنات القابلة للتغيير ممنوعًا ، وتستخدم المجموعات ذاكرة ديناميكية مشتركة، مما يؤدي إلى تسريع نقل الكائنات بشكل كبير من كتلة إلى أخرى دون الحاجة إلى عمليات نسخ كثيفة الاستخدام للموارد.

في الإصدار الجديد ، يُسمح أيضًا بتمرير نتيجة عمل وحدة التحكم عند استدعاء Isolate.exit () لتمرير البيانات إلى كتلة العزل الرئيسية دون إجراء عمليات النسخ. بالإضافة إلى ذلك ، تم تحسين آلية إرسال الرسائل: تتم الآن معالجة الرسائل الصغيرة والمتوسطة بسرعة أكبر بحوالي 8 مرات. تتضمن الكائنات التي يمكن تمريرها بين العزلات باستخدام استدعاء SendPort.send () أنواعًا مختلفة من الوظائف والإغلاق وتتبعات المكدس.

في أدوات إنشاء المؤشرات للوظائف الفردية في أشياء أخرى ، تمت إزالة القيود المفروضة على إنشاء مثل هذه المؤشرات في كود المنشئ ، والتي يمكن أن يكون مفيدًا عند إنشاء واجهات بناءً على المكتبة رفرفة.

المكتبة dart: تم تحسين دعم التعداد الأساسي ، على سبيل المثال ، يمكنك الآن إنشاء قيمة سلسلة من كل قيمة تعداد باستخدام طريقة ".name" ، أو الحصول على القيم بالاسم ، أو مطابقة أزواج القيم.

كما تم تسليط الضوء على ذلك تم تنفيذ تقنية ضغط المؤشرأن يسمح باستخدام تمثيل أكثر إحكاما للمؤشرات في بيئات 64 بت إذا كانت مساحة العنوان 32 بت كافية للعنونة (لا يتم استخدام أكثر من 4 غيغابايت من الذاكرة). أظهرت الاختبارات أن مثل هذا التحسين يقلل حجم الكومة بنسبة 10٪ تقريبًا. في Flutter SDK ، يكون الوضع الجديد ممكّنًا بالفعل لنظام Android افتراضيًا ومن المخطط تمكينه لنظام iOS في إصدار مستقبلي.

بالإضافة إلى ذلك وتجدر الإشارة إلى أن مستودع pub.dev الآن لديه القدرة على إبطال نسخة منشورة بالفعل لحزمة ، على سبيل المثال ، في حالة وجود أخطاء خطيرة أو نقاط ضعف.

من تغييرات أخرى التي تبرز:

  • حماية إضافية ضد الثغرات الأمنية (CVE-2021-22567) الناتجة عن استخدام أحرف Unicode التي تغير ترتيب العرض في الكود.
  • تم إصلاح ثغرة أمنية (CVE-2021-22568) قد تنتحل شخصية مستخدم pub.dev آخر عند نشر حزم إلى خادم جهة خارجية يقبل رموز وصول oauth2 من pub.dev.
  • تتضمن Dart SDK أدوات لتصحيح الأخطاء وتحليل الأداء (DevTools) ، والتي تم تسليمها سابقًا في حزمة منفصلة.
  • تمت إضافة الأدوات إلى الأمر "dart pub" ومستودعات الحزمة pub.dev لتتبع الإطلاق العرضي للمعلومات الحساسة ، على سبيل المثال ترك بيانات الاعتماد لأنظمة التكامل المستمر والبيئات السحابية داخل الحزمة.
  • إذا تم العثور على مثل هذه التسريبات ، فسيتوقف الأمر "dart pub publish" مع ظهور رسالة خطأ. في حالة وجود إنذار خاطئ ، من الممكن تخطي الشيك عبر القائمة البيضاء.

مصدر: https://medium.com/


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.