"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > المبسطة: Javascript Vngine ✨

المبسطة: Javascript Vngine ✨

تم النشر بتاريخ 2024-11-02
تصفح:565

Simplified: Javascript Vngine ✨

كيف يعمل محرك V8 حقًا؟

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

دعونا نتعمق في كيفية عمل V8، ولكن لا تقلق، سأجعل الأمر ممتعًا وبسيطًا! ?


ما هو محرك V8 بالضبط؟ ؟

محرك V8 هو محرك جافا سكريبت مفتوح المصدر تم تطويره بواسطة Google. فهو يشغل Google Chrome والعديد من البيئات الأخرى، مثل Node.js. بشكل أساسي، يأخذ V8 كود JavaScript الخاص بك، ويجمعه في كود الجهاز ، ثم يقوم بتشغيله بسرعة فائقة!

تكتب JS، ويتأكد V8 من أن جهازك يعرف بالضبط ما يجب فعله به.


خطوة بخطوة: كيف يعمل محرك V8 أسفل الغطاء؟

1.

التحليل : فهم الكود الخاص بك؟

عندما تكتب JavaScript، أول شيء يفعله V8 هو

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

مثال:

دع a = 10؛ دع ب = 20؛ دع المبلغ = أ ب؛
let a = 10;
let b = 20;
let sum = a   b;
يرى V8 هذا الرمز ويفكر، "حسنًا، أرى متغيرين وعملية جمع."


2.

المترجم (الإشعال): تشغيل الكود الخاص بك بسرعة؟‍♂️

بمجرد إنشاء شجرة بناء الجملة، يستخدم V8 شيئًا يسمى

مترجم الإشعال. يقوم المترجم بمراجعة التعليمات البرمجية الخاصة بك بسرعة ويقوم بتشغيلها كما هي، ولكن ليس بسرعة فائقة حتى الآن! إنه يشبه إجراء اختبار على الكود الخاص بك لمعرفة كيفية عمله.

فكر في الإشعال مثل وضع "التشغيل التجريبي". إنه ينفذ الكود

في الوقت المناسب دون الكثير من التحسين في هذه المرحلة.


3.

التنميط: هل تشاهد التعليمات البرمجية الخاصة بك أثناء العمل؟

أثناء تشغيل JavaScript، يراقبه V8. إنه يراقب أجزاء من التعليمات البرمجية الخاصة بك التي يتم استخدامها كثيرًا - تسمى هذه

الوظائف الساخنة. وهذا يشبه معرفة أي التروس في السيارة يتم استخدامها أكثر أثناء السباق.

إذا تم تنفيذ جزء من التعليمات البرمجية مرارًا وتكرارًا، يضع V8 علامة عليه ويقول، "مرحبًا، هذا الجزء من التعليمات البرمجية يمكن أن يستخدم بعض التحسين الجاد!"


4.

التحسين (TurboFan): جعلها فائقة السرعة ؟؟

عندما يلاحظ V8 بعض الوظائف الساخنة، فإنه يسلمها إلى

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

إليك السحر: يقوم TurboFan بتحويل JavaScript الخاص بك إلى

رمز الجهاز (الثنائي 0 و 1 الذي يفهمه جهاز الكمبيوتر الخاص بك). يعد رمز الآلة المُحسّن هذا أسرع بكثير مما أنتجته Ignition في البداية.

مثال:

إذا كانت لديك وظيفة تضيف رقمين وتتصل بها كثيرًا، فسوف يقوم TurboFan بجعل هذه الوظيفة سريعة قدر الإمكان.


5.

جمع القمامة: تنظيف الفوضى ️

عند تشغيل JavaScript، غالبًا ما تقوم بإنشاء متغيرات وكائنات ومصفوفات وما إلى ذلك. بمجرد الانتهاء منها، يتدخل V8 في

جمع البيانات المهملة، وهي عملية تحرر الذاكرة تلقائيًا من الأشياء التي تريدها لم تعد بحاجة. وهذا يمنع متصفحك أو خادم Node.js من نفاد الذاكرة والتعطل.

يعد جمع البيانات المهملة في V8 أمرًا ذكيًا - فهو لا يؤدي فقط إلى التخلص من الأشياء بشكل عشوائي. ويستخدم تقنيات مثل

mark-and-sweep لتتبع البيانات غير المستخدمة وإزالتها بعناية.


ما الذي يجعل محرك V8 مميزًا؟ ؟

1.

تجميع JIT

يستخدم V8 تقنية تسمى

التجميع في الوقت المناسب (JIT). وهذا يعني أنه بدلاً من تجميع JavaScript قبل تشغيله (مثل العديد من اللغات الأخرى)، يقوم V8 بتجميع التعليمات البرمجية الخاصة بك أثناء أثناء تشغيله، مما يمنحه زيادة كبيرة في السرعة في الوقت الفعلي!


2.

إدارة الذاكرة الفعالة؟

V8 رائع في إدارة الذاكرة. فهو يخصص القدر المناسب من الذاكرة للمتغيرات والوظائف الخاصة بك، ثم يقوم بالتنظيف بعد ذلك عند الانتهاء. وهذا يضمن تشغيل التعليمات البرمجية الخاصة بك بسرعة وعدم إهدار موارد النظام.


3.

الدعم الأصلي لجافا سكريبت الحديثة ؟

يواكب V8 أحدث ميزات JavaScript. سواء كنت تستخدم فئات ES6، أو غير متزامن/منتظر، أو بناء جملة جديد فاخر مثل التسلسل الاختياري (؟.)، فإن V8 يدعمك ويدعم كل ذلك بكفاءة.


دعونا نلخص مع مثال؟

لنفترض أنك كتبت دالة لحساب مضروب الرقم:


عامل الدالة (ن) { إذا (ن === 0) { العودة 1؛ } إرجاع n * مضروب(ن - 1); } console.log(factorial(5)); // الإخراج: 120
let a = 10;
let b = 20;
let sum = a   b;
إليك ما يحدث تحت غطاء المحرك في محرك V8:

  1. تحليل: يقوم V8 بتحويل وظيفتك إلى شجرة بناء الجملة.
  2. الإشعال: يقوم بتشغيل الكود لمعرفة كيفية أدائه.
  3. التنميط: يلاحظ أنه يتم استدعاء هذه الدالة المضروب عدة مرات.
  4. TurboFan: يعمل V8 على تحسين هذه الوظيفة إلى كود آلة فائق السرعة.
  5. جمع البيانات المهملة: بمجرد انتهاء الوظيفة، يقوم V8 بتنظيف الذاكرة المستخدمة من قبله.

مستقبل V8؟

مع نمو JavaScript، ينمو V8 أيضًا. يعمل فريق Google باستمرار على تحسين المحرك، مع التركيز على الأداء وكفاءة الذاكرة ودعم ميزات JavaScript الجديدة.

لذا، في كل مرة تقوم فيها بتشغيل JavaScript في Chrome أو Node.js، فاعلم أن V8 يعمل بجد خلف الكواليس، حيث يقوم بتفسير التعليمات البرمجية وتحسينها وإدارتها - مما يضمن تشغيل تطبيقاتك بسرعة وكفاءة.


وقت الاختبار النهائي! ؟

إليك اختبار سريع لاختبار معرفتك بـ V8:

    ماذا يفعل محرك V8 بكود JavaScript؟
  1. ما هو دور مترجم
  2. الإشعال في V8؟
  3. ما الذي يمثله تجميع
  4. JIT؟
  5. كيف يعمل
  6. TurboFan على تحسين الكود الخاص بك؟
  7. ما الذي تساعد فيه عملية
  8. جمع البيانات المهملة في V8؟

إذن هذا هو V8، مبسط! أتمنى أن يكون لديك الآن فهم أفضل لكيفية تشغيل هذا المحرك القوي لجافا سكريبت لديك، سواء كان ذلك على الويب أو من جانب الخادم في Node.js. ترميز سعيد! ?

بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/fullstacktanmay/simplified-javascript-v8-engine-249o؟1 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3