الإصدار الأول من wasm3 ، مترجم WebAssembly السريع

متاح الطبعة الأولى Wasm3، مترجم شفرات وسيط WebAssembly سريع جدًا ، مصمم بشكل أساسي لاستخدامه في تشغيل تطبيقات WebAssembly على المتحكمات الدقيقة والأنظمة الأساسية التي لا تحتوي على تطبيق WebAssembly JIT ، أو لا تحتوي على ذاكرة كافية لتشغيل JIT ، أو لا يمكنها إنشاء صفحات ذاكرة قابلة للتنفيذ مطلوبة لتنفيذ JIT . كود المشروع مكتوب بلغة C و وزعت من خلال بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.

يمر Wasm3 اختبارات ليكون متوافقًا مع مواصفات WebAssembly 1.0 ويمكن استخدامه لتشغيل العديد من تطبيقات WASI ، مما يوفر أداءً أقل من 4-5 مرات فقط من محركات JIT (يغادر, رفع رافعة) و 11.5 مرة أقل من تنفيذ التعليمات البرمجية الأصلية. عند المقارنة بمترجمي WebAssembly الآخر (واك, حياة, وقت التشغيل الجزئي wasm) ، كان wasm3 أسرع 15.8 مرة.

يتطلب Wasm3 64 كيلو بايت من الذاكرة للرمز و 10 كيلو بايت من ذاكرة الوصول العشوائي ، مما يسمح لك باستخدام المشروع لتشغيل التطبيقات المترجمة في WebAssembly على ميكروكنترولر، مثل Arduino MKR * و Arduino Due و Particle Photon و ESP8266 و ESP32 و Air602 (W600) و nRF52 و nRF51 Blue Pill (STM32F103C8T6) و MXChip AZ3166 (EMW3166) ،
Maix (K210) و HiFive1 (E310) و Fomu (ICE40UP5K) و ATmega1284 ، بالإضافة إلى اللوحات وأجهزة الكمبيوتر المستندة إلى بنيات x86 و x64 و ARM و MIPS و RISC-V و Xtensa. أنظمة التشغيل المدعومة هي Linux (بما في ذلك أجهزة التوجيه المستندة إلى OpenWRT) و Windows و macOS و Android و iOS. من الممكن أيضًا تجميع wasm3 في رمز WebAssembly الوسيط لتنفيذ المترجم الفوري في المستعرض أو التشغيل المتداخل (الاستضافة الذاتية).

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

بالإضافة إلى ذلك ، يمكن ملاحظته نتائج الدراسة توزيع
WebAssembly في الويب. بعد تحليل 948 ألف موقع الأكثر شهرة حسب تصنيف Alexa ، اكتشف الباحثون أن WebAssembly يستخدم في 1639 موقعًا (0.17٪) ، أي على موقع واحد من بين كل 1 موقع. في المجموع ، تم اكتشاف 600 وحدة WebAssembly في المواقع ، منها 1950 وحدة فريدة. عند النظر في نطاق WebAssembly ، تم التوصل إلى استنتاجات مخيبة للآمال - في أكثر من 150٪ من الحالات ، تم استخدام WebAssembly لأغراض ضارة ، على سبيل المثال ، لتعدين العملات المشفرة (50٪) وإخفاء كود البرامج النصية الضارة (55.7٪). تشمل الاستخدامات المشروعة لـ WebAssembly تنفيذ مكتبات (0.2٪) ، وإنشاء ألعاب (38.8٪) ، وتنفيذ كود أصلي غير جافا سكريبت (3.5٪). في 0.9٪ من الحالات ، تم استخدام WebAssembly لتحليل البيئة لتحديد هوية المستخدم (بصمات الأصابع).

الإصدار الأول من wasm3 ، مترجم WebAssembly السريع

المصدر: opennet.ru

إضافة تعليق