تطرح Mozilla المزيد من تحسينات الأداء لمتصفح Firefox، مع التركيز هذه المرة على وقت تشغيل WebAssembly للمتصفح. أصبحت بعض مهام المعالجة الآن أسرع بأكثر من 75 مرة في Firefox.
تستخدم بعض تطبيقات الويب والألعاب الأكثر تقدمًا تعليمات برمجية يتم تجميعها لـ WebAssembly، بدلاً من التعليمات البرمجية المكتوبة في JavaScript أو المترجمة إليها. يتم استخدام WebAssembly بشكل أساسي لأدوات العرض المعقدة للفيديو والصوت وثلاثية الأبعاد، مثل إصدارات الويب من أدوبي فوتوشوب, سكيتش اب, جوجل إيرث, فيجما، و الألعاب المبنية على Unity. ومع ذلك، يواجه Firefox بعض مشكلات الأداء عند تجميع كود WebAssembly، مما قد يؤدي إلى إبطاء الاستجابة وأوقات التحميل الأولية لتطبيقات الويب التي تستخدمه.
يشرح منشور على مدونة تطوير SpiderMonkey التابعة لـ Mozilla ما يلي: “عند الانتهاء من التجميع الأساسي، نقوم بتجميع وحدة Wasm باستخدام مترجم Ion الأكثر تقدمًا. تنتج هذه الواجهة الخلفية تعليمات برمجية أسرع للآلة، لكن وقت التجميع أطول بكثير. كانت مشكلة وحدة ONNX هي أن الواجهة الخلفية للمترجم Ion استغرقت وقتًا طويلاً واستخدمت الكثير من الذاكرة لتجميعها. على جهازي الذي يعمل بنظام التشغيل Linux x64، استغرق تجميع هذه الوحدة باستخدام Ion حوالي 5 دقائق واستخدم أكثر من 4 جيجابايت من الذاكرة. على الرغم من أن هذا العمل يحدث في الخلفية، إلا أن هذا كان لا يزال يحمل الكثير من النفقات.
تمكن مهندسو Mozilla من تحديث مُخصص التسجيل لمكون Firefox’s Ion باستخدام طريقة متجهة أكثر كفاءة، مما جعل أوقات الترجمة أسرع بحوالي 20 مرة، وقاموا بتحديث المكونات الأخرى للمترجم باستخدام خوارزميات مختلفة. يقول منشور المدونة: “مع هذه التغييرات، يستطيع Ion تجميع وحدة ONNX Wasm في أقل من 3.9 ثانية على جهازي، أي أسرع بـ 75 مرة من قبل هذه التغييرات.”
والنتيجة النهائية هي أن Photoshop وGoogle Earth وتطبيقات الويب والألعاب الأخرى التي تستخدم WebAssembly يجب أن يتم تحميلها بشكل أسرع في Firefox بشكل عام. ال كامل لن يحصل تطبيق الويب على زيادة في السرعة “تصل إلى 75x”، لكن بعض العمليات في التطبيق ستكون أسرع. تقول Mozilla إن إحدى وحدات WebAssembly الكبيرة التي يستخدمها الإصدار التجريبي المجاني من Photoshop عبر الإنترنت يتم تجميعها الآن في 14 ثانية في Firefox، بدلاً من أربع دقائق، واختبار واحد في معيار الويب JetStream 2 وينتهي الآن في 0.2 ثانية بدلاً من 2.8 ثانية.
تعمل Mozilla على تحسينات أخرى على WebAssembly في Firefox، لذلك يجب أن تستمر تطبيقات الويب المعقدة في التحسن بمرور الوقت. من الرائع بالتأكيد رؤية ذلك، بالإضافة إلى تحسينات سهولة الاستخدام الأخرى مثل الترجمة المحلية.
مصدر: مدونة سبايدر مونكي
(العلامات للترجمة) الويب (ر) فايرفوكس