
منذ إطلاق التطبيق Google Chrom في 2008 كانت السرعة إحدى مبادئه الأربعة التي اكتملت بميزات الأمان، الاستقرار والبساطة، والتي ركّزت عليها جوجل بغية جعل Google Chrome واحداً من أفضل المتصفّحات على الإطلاق.
ويعتبر المترجم V8 JavaScript أحد أهمّ أجزاء المتصفّح فعلياً، وذلك لكونه يعتمد على تنفيذ ملفّات JavaScript الموجودة لدى مواقع الويب وذلك أثناء عملية التصفّح.
ويقوم المحرّك V8 المتوفر لدى جوجل كروم بتنفيذ كمٍّ هائلٍ من تعليمات JavaScript وبشكلٍ يوميٍّ دون توقف.
وبحسب ما نشرته المدوّنة Chromium فقد تم إجراء بعض التحسينات على المحّرك V8 ليتمكّن برنامج التعريف الخاص بالمتصفّح من تنفيذ التعليمات بسرعةٍ أكبر من السابق بنسبة 23%.
وبعد حدث الإطلاق الأخير والذي كشف عن المترجم الجديد Sparkplug وميزة الاستدعاءات القصيرة المدمجة في M91 Chrome تمكّن متصفّح جوجل من توفير الكثير من الوقت على المستخدمين لعمليات التصفّح.
ويمكن تعريف Sparkplug بكونه مترجماً جديداَ يعتمد على JavaScript، ويساهم في تحسين التعليمات البرمجية وذلك لرفع مستويات الأداء إلى حدودها القصوى وكذلك تحسين عمليات الاستدعاء بتخزين الأكواد البرمجية في حيّزٍ جانبيٍّ واستدعائها وقت الضرورة بدلاً من قطع شوطٍ طويلٍ في إعادة كتابتها في كل مرة.
تحسينات المحرّك V8:
يستخدم المحرّك V8 عدة مترجمات لتنفيذ تعليمات JavaScript، كما قامت جوجل منذ حوالي ثلاثة أعوام بإطلاق مترجمٍ ثنائيّ المستوى ويتألف من مرحلتين Ignition و Turbofan.
حيث تعتبر Ignition مرحلة تفسير الأكواد المكتوبة بلغة الآلة وذلك للبدء بتنفيذ تعليمات جافا سكريبت دون أدنى تأخيرٍ محتمل، بينما تحسّن مرحلة Turbofan من قدرات المترجم لتوليد الكود البرمجيّ عالي الأداء باستخدام المعلومات التي تم جمعها خلال تنفيذ كود JavaScript.
ونتيجةً لذلك تعتبر المرحلة Turbofan أكثر بطئاً من مرحلة الترجمة Ignition، ولهذا السبب أطلقت جوجل المترجم Sparkplug والذي يعيد موازنة الأمور بين المرحلتين وذلك بإنشاء الكود البرمجيّ بلغة الآلة من الأساس دون الحاجة إلى المعلومات المجموعة خلال تنفيذ أكواد JavaScript.
ومن جانبٍ آخر، تعدّ البنية الآلية الصغيرة التي يعتمدها المحرّك V8 طريقةً مناسبة لتحسين وضع التعليمات البرمجية في الذاكرة ضمن أماكن ومواقع مدروسةً ليتم الوصول إليها بشكلٍ أسرع، وعندما يقوم المحرّك V8 بتوليد الكود البرمجيّ الخاص بوحدة المعالجة المركزية من لغة JavaScript، فإن هذا الكود يتجّه نحو الذاكرة لكي يتم استدعاؤه مراتٍ عدةٍ وذلك لكونه يتضمّن الكثير من الوظائف المطلوبة للقيام بالمهام الشائعة.
وفي الوقت ذاته يمكن أن يؤدي استدعاء الوظائف ذات المسار الطويل إلى فشلٍ في توليد التحسينات الداخلية لوحدة المعالجة وهذا ما يدعو المتصفّح كروم إلى نسخ الوظائف المضمّنة في نفس الحيّز من الذاكرة بما في ذلك الكود البرمجيّ المولّد وهذا ما يؤدي فعلياً إلى تسريع عمليات التصفّح بشكلٍ كبير.
