أصدر Facebook الكود المصدري لمحرك Hermes JavaScript

هيرميس

قام Facebook بفتح الكود المصدري لمحرك Hermes JavaScript خفيف الوزن ، مُحسَّن لتشغيل التطبيقات القائمة على إطار عمل React Native على نظام Android الأساسي.

مهندس برمجيات فيسبوك كشف مارك هورويتز عن محرك JavaScript الجديد في مؤتمر 2019 Chain React في بورتلاند ، أوريغون. Hermes هي أداة مطور جديدة تركز على تحسين أداء بدء تشغيل التطبيقات بنفس الطريقة التي يعمل بها Facebook بالفعل لتطبيقاته وجعل التطبيقات أكثر فاعلية على الهواتف الذكية للمبتدئين.

حول هيرميس

تم دمج دعم Hermes في React Native اعتبارًا من الإصدار 0.60.2 اليوم. يُعرف المشروع بقدرته على حل مشكلات أوقات بدء التشغيل الطويلة لتطبيقات JavaScript الأصلية والاستهلاك الكبير للموارد. تمت كتابة الكود بلغة C ++ وتوزيعها بموجب ترخيص MIT.

من مزايا استخدام Hermes ، هناك انخفاض في وقت بدء التطبيق، انخفاض في استهلاك الذاكرة وانخفاض في حجم التطبيق.

تسريع الطلبات إطلاق يتم تحقيقه عن طريق استخدام التجميع المسبق في رمز ثانوي مدمج وفعال في مرحلة التجميع.

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

يأخذ محرك Hermes هذه المراحل إلى مرحلة التجميع ويسمح بتسليم التطبيقات في شكل كود بايت محسن.

تنقسم معالجة JavaScript إلى عدة مراحل. في البداية ، يتم تحليل شفرة المصدر ويتم إنشاء تمثيل الكود الوسيط (Hermes IR) ، بناءً على تمثيل SSA (التعيين الفريد الثابت)

بالإضافة إلى ذلك ، تتم معالجة التمثيل الوسيط في المُحسِّن ، والذي يستخدم تقنيات التحسين الاستباقي الاستباقي لتحويل الكود الوسيط الأساسي إلى تمثيل وسيط أكثر كفاءة ، مع الحفاظ على دلالات البرنامج الأصلي.

أخيرًا ، في المرحلة الأخيرة ، يتم إنشاء رمز البايت للجهاز الظاهري المسجل.

في عرض توضيحي ، أظهر مارك هورويتز أن تطبيق React Native مع Hermes تم تحميله بالكامل أسرع بحوالي ثانيتين من نفس التطبيق الذي تم تحميله بدون Hermes.

حرص مارك هورويتز على أن تقوم شركة Hermes أيضًا بتقليل حجم ملف APK إلى منتصف 41 ميجابايت من تطبيق React Native المخزن وألغى ربع استخدام ذاكرة التطبيق.

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

يدعم المحرك جزءًا من معيار JavaScript ECMAScript 2015 (دعمه الكامل هو الهدف النهائي) وهو متوافق مع معظم تطبيقات React Native الحالية. في Hermes ، تقرر عدم دعم الصب المحلي لـ EVAL () و "مع" التعبيرات والانعكاسات (Reflect and Proxy) و Intl API وبعض العلامات في RegExp.

لتمكين Hermes في تطبيق React Native ، ما عليك سوى إضافة الخيار "enableHermes: true" إلى المشروع. من الممكن أيضًا تجميع Hermes في وضع واجهة CLI ، والذي يسمح لك بتنفيذ ملفات JavaScript عشوائية من سطر الأوامر.

في الوقت نفسه ، لا يخطط Facebook لتكييف Hermes مع Node.js والحلول الأخرى ، مع التركيز فقط على تطبيقات الهاتف المحمول (يعتبر تجميع AOT بدلاً من JIT هو الأفضل في سياق تطبيقات الأجهزة المحمولة المستندة إلى React Native).

أجرت Microsoft اختبارات أداء أولية وأظهرت أنه عند استخدام Hermes ، فإن تطبيق Microsoft Office for Android متاح للعمل في 1.1 ثانية.

بعد الإطلاق يستهلك 21.5 ميجا بايت من ذاكرة الوصول العشوائي ، أثناء استخدام محرك V8 ، يتم إنفاق 1.4 ثانية عند الإطلاق ، واستهلاك الذاكرة هو 30 ميجا بايت.


كن أول من يعلق

اترك تعليقك

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

*

*

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