V8 هو أصدرت جوجل جافا سكريبت محرك مفتوح المصدر، وكتب في C ++ باستخدام، ويستخدم في متصفح جوجل كروم. محرك V8 يمكن تشغيلها بشكل مستقل، ويمكن أيضا أن تستخدم لتطبيق تضمين C ++ التنفيذ.
محرك V8 جافا سكريبت أصدرت النسخة 7.4، وهو حاليا في مرحلة تجريبية، سيتم الافراج عن النسخة الرسمية بعد بضعة أسابيع مع كروم 74 المستقرة.
هذا الإصدار يجلب بعض الميزات الجديدة والمحسنة بشكل كبير الأداء.
JIT أقل V8
V8 الآن لا تحتاج إلى تخصيص وقت ذاكرة قابل للتنفيذ يمكن تنفيذ جافا سكريبت وتفاصيل محددة عن هذه الميزة الجديدة، ولقد ذكرت سابقا: V8 آلية جديدة: وضع JIT أقل.
WebAssembly المواضيع / أتوميكس
على نظام تشغيل بخلاف Android تمكين WebAssembly المواضيع / أتوميكس، يمكن معدن الكروم: // الأعلام / # تمكين webassembly بين خيوط لتمكين هذه الميزة في كروم.
هذه الميزة يمكن أن تكون مقفلة على جهاز الكمبيوتر الخاص بالمستخدم باستخدام متعددة النوى webassembly من خلال، من أجل تحقيق جديدة، وحالات استخدام مكثفة حسابيا على الويب.
تحسينات في الأداء
المعلمات لا تتطابق مع دعوة أسرع
زمنية مختلفة يسمح ظيفة جافا سكريبت يسمى عدد المعلمات ظروف محددة، سواء كان أقل أو أكثر من المعلمات لا تكون فعالة بشكل كامل، ويمكن الحصول على المعلمات وظيفة جافا سكريبت الفعلية المعلمة الكائن، والراحة، الخ المعلمات. لذلك، يجب أن محرك جافا سكريبت توفر طريقة للحصول على المعلمات الفعلية، في V8، والذي هو عبارة عن تقنية تسمى المعلمات على التكيف الانتهاء.
المعلمة التكيف يمكن الحصول على المعلمات الفعلية، ولكن على حساب الأداء، وهذه الخسارة في أداء الأمامية الحديثة والإطار المتوسط عادة ما يكون من المستحيل تجنب، لأن هناك الكثير من API مع المعلمات الاختيارية أو معلمة متغير القائمة.
V87.4 الإصدار يجلب ميزة جديدة لحل هذه المشكلة.
في بعض الحالات، مثل عندما يتم استدعاء دالة عند وضع الدقيق للكلمة، ولا المعلمة ولا المعلمة الراحة في هذا الوقت لا تحتاج إلى المعلمات على التكيف تماما. الآن V8 في هذه الحالة تخطي مباشرة هذه العملية التكيف، وسوف ندعو خفض النفقات العامة بنسبة تزيد على 60.
تحسين الأداء وصول الأصلي
ووجد فريق الزاوي في كروم وتدعو كل وظيفة الحصول على استرجاع الأصلي استرجاع الممتلكات DOM، وما شابه ذلك مباشرة، من دولة واحدة (وحيد الشكل) أو حتى وصول (megamorphic) ممتلكات الدولة الشاملة هي أبطأ بكثير. وذلك لأن وصول الدعوة DOM باستخدام مسار بطيء من خلال وظيفة # المكالمة () في V8، بدلا من سرعة الوصول إلى السمة مسار موجود بالفعل.
هذا الإصدار يحسن الوصول إلى الأداء دعوة مواطن، ويجعل من أسرع بكثير من الوصول ممتلكات الدولة عموما، وأثر هو على النحو التالي:
مترجم الأداء
في كروم، ويتم تحليل حمل النصي كبير في التدفق على ترابط عامل، وأصول هذه الإصلاحات إطلاق مشكلة مع العرف فك UTF-8، وذلك بعد إصلاح تدفق متوسط أداء أسرع التحليلي من 8.
وجد V8 قبل محلل أيضا مشكلة أخرى: أسماء السمات ترابط هي الازدواجية غير الضرورية. وهذه حذف البيانات المكررة تدفق أداء محلل تحسنت 10.5.
انخفاض الذاكرة
بايت كود دافق
تم تجميعها من شفرة المصدر بايت كود جافا سكريبت تحتل جزءا V8 مساحة كومة كبيرة، عادة حوالي 15، بما في ذلك البيانات الوصفية المرتبطة بها. ولكن هناك العديد من الوظائف يؤديها فقط أثناء التهيئة، أو نادرا ما تستخدم بعد التجميع، التي من الواضح أن النفايات.
من أجل الحد من النفقات العامة الذاكرة V8، هذا الإصدار تنفذ وظيفة بايت كود مطاردة جديدة، وهذا هو، إذا لم يكن بتنفيذ التعليمات البرمجية بايت جمعت مؤخرا، وسوف تعمل خلال GC ومسحها. ولتحقيق ذلك، سوف V8 تتبع المقطع رمز وظيفة من العمر خلال زيادة GC من العمر، وفي أداء وظيفتها سيتم إعادة تعيين إلى الصفر. وستتخذ أي سوبر مسبقا "الشيخوخة عتبة" ذاكرة بايت كود بعيدا تحت أحد هواة جمع القمامة، وإذا كان في المستقبل لأداء وظيفة مرة أخرى، فإنه سيتم إعادة تجميع بايت كود.
مطاردة بايت كود لمستخدمي كروم لانقاذ الكثير من الذاكرة، وكمية من كومة الذاكرة V8 الحد من 5-15، في حين لا زيادة كبيرة أو نقصان أداء الوقت CPU قضى تجميع شفرة جافا سكريبت.
وهناك أيضا جافا سكريبت حقل فئة خاصة، V8 API وغيرها من التحسينات، وتفاصيل انقر لعرض النص الأصلي.
https://www.oschina.net/news/105419/v8-7-4-released؟from=toutiaohao