جمعه, ۱۴ اردیبهشت, ۱۴۰۳ / 3 May, 2024
مجله ویستا

قدرت جاوا اسکریپت در مرورگر chrome گوگل


قدرت جاوا اسکریپت در مرورگر chrome گوگل
اخیرا گوگل یک موتور جاوا اسکریپت جدید به نام V۸ Engine را معرفی کرده است که بر روی مرورگر جدید این شرکت که chrome نام دارد، استفاده شده است.
تعداد زیادی موتور جاوااسکریپت در حال حاضر موجود است که بر روی مرورگر های مختلف از آنها استفاده شده است:
ـ JavaScriptCore: این موتور در حال حاضر بر روی safari/webkit نصب شده و تا نسخه ۳.۱ سافاری از این موتور استفاده می کند
ـ Squirrelfish : این موتور برای safari نسخه ۴ آماده شده است و در حال حاضر نسخه نهایی آن آماده نیست ولی در نسخه nightly این مروگر می شود آن را تست کرد. توجه : متاسفانه تست Dromaeo بر روی نسخه nightly این مرورگر با شکست مواجه شد لذا این موتور از لیست نتایج حذف گردید.
ـ V۸ : موتور استفاده شده در مرورگر chrome شرکت گوگل
ـ SpiderMonkey : این موتور بر روی فایرفاکس ۳ نصب شده و تا آخرین نسخه فایرفاکس از این موتور استفاده می کند
ـ TraceMonkey : که برای نسخه ۳.۱ فایرفاکس آماده شده است و در حال حاضر در نسخه nightly فایرفاکس وجود دارد و در حالت عادی غیر فعال است. مطالبی در مورد این موتور جدید در پست “آیا فایرفاکس با SpiderMonkey وب را متحول خواهد کرد ؟” نوشته ام.
ـ Futhark : این موتور بر روی اپرا ۹.۵ و نسخه های جدیدتر نصب است
ـ IE JScript : که بر روی نسخه های مختلف اینترنت اکسپلورر از آن استفاده می شود.
تست های مختلفی بر روی این مرورگر های انجام گرفته و مرورگر کروم شرکت گوگل نیز در بین این مرورگر ها وجود دارد. به این ارقام و اعداد به خوبی دقت کنید تا بتوانید دیدی درست نسبت به عملکرد مرورگر ها به دست آورید.
▪ ما مرورگر ها را با سه مجموعه تست ، آزمودیم که لیست این آزمون ها به قرار ذیل است:
ـ SunSpider : یک تست مشهور جاوا اسکریپت است که توسط تیم WebKit ایجاد شده است. این تست فقط موتور های جاوا اسکریپت را از لحاظ کارآیی تست می کند ( هیچ عملیاتی در بخش رندر کردن یا ایجاد تغییرات در درخت DOM انجام نمی شود). این مجموعه دارای تست های زیادی است (مانند آبجکت ها، فراخوانی توابع، معادلات ریاضی، حلقه ها و … ).
ـ V۸ Benchmark : یک تست که توسط تیم V۸ ساخته شده و تنها کارایی موتور های جاوا اسکریپت را می سنجد آن هم با تاکید زیاد بر روی کارایی موتور ها در اجرای حلقه ها در برنامه.
ـ Dromaeo : این مجموعه تست توسط موزیلا طراحی شده است و javascript, DOM و کارایی کتابخانه های جاوااسکریپت را بررسی می کند. این مجموعه شامل تست های فراوانی است و بخش اعظم این تست ها، کارایی DOM و کتابخانه های جاوااسکریپت را بررسی می کنند.
اجازه بدهید به آمار تست سان اسپایدر تیم وب کیت نگاهی بندازیم (که مجموعه ای از تست ها را برای آزمودن موتور ها در اجرای جاوا اسکریپت خالص و ناب را شامل می شود). نتایج بدین گونه بود:
تقریبا نتایجی نزدیک به هم را مشاهده می کنیم که chrome با اختلافی اندک در این تست پیروز است (به نتیجه افتضاح اینترنت اکسپلورر توجه نکنید). کروم در این تست به یقین سریعترین بوده است. البته دقت کنید که در این تست موتور tracemonkey جدید استفاده نشده است و در حالت عادی تست انجام گرفته است.
Brendan Eich مقایسه ای را شب گذشته بین Tracemonkey و V۸ انجام داده که نتیجه اش اینگونه بوده است:
در اینجا کاملا مشهود است که موتور TraceMonkey که تنها ۲ ماه بر روی آن کار شده است نتایجی به مراتب بهتر از موتور V۸ که بیشتر از دو سال صرف برنامه نویسی آن شده است، عمل کرده است.
چیزی که موتور TraceMonkey را عقب تر از رقیبان قرار می دهد این است که در این لحظه هنوز متد های Tracing بر روی حلقه ها کار نمی کنند [ در این مورد در مقاله قبل توضیح داده بودم ] و همین مورد باعث می شود که در برخی از تست ها موتور V۸ تا ۱۰ بار سریعتر از TraceMonkey باشد. هر گاه نسخه ۳.۱ مرورگر فایرفاکس آماده شد من حتما این تست ها رو از نو انجام خواهم داد.
● تست V۸ شرکت گوگل
تیم کروم مجموعه تست خودشان را منتشر کرده اند که شامل تست های کمی است (البته این تست ها با SunSpider تفاوت دارند ) و به شدت موتور ها را برای تست قابلیت در حلقه ها تست می کنند. نتایج این تست بدین شکل بود:
ما می بینیم که chrome در این تست رقیبان خود را له می کند. البته این تست خودش جای بحث دارد. این تست تنها بر روی بخشی از جاوا اسکریپت تاکید دارد شاید تنها دقایق اندکی مرورگر درگیر این حالت شود و شامل کارایی واقعی مرورگر نمی شود.
در ضمن دقت کنید که در این تست TraceMonkey عملکرد ضعیفی دارد ولی به یاد داشته باشید که قبلا توضیح دادم که tracing در حال حاضر بر روی حلقه ها کار نمی کند.
● تست Dromaeo به همراه DOM
در پایان، اجازه بدهید نگاهی کلی به عملکرد موتور ها در اجرای فایل های جاوااسکریپت بیندازیم. من در حال حاضر بر روی مجموعه تست های Dromaeo کار می کنم و در حال اضافه کردن تعداد زیادی از تست های DOM و تست های مربوط به کتابخانه های جاوا اسکریپت هستم. این تست ها تصویر بهتری در مورد عملکرد یک مرورگر در حالت عادی (مثلا وب گردی ساده) می دهد.
دقت کنید که دلیل کند بودن بیشتر صفحات وب به خاطر DOM (مانند مرتب کردن خانه های یک جدول یا کلا دستکاری اجزای داخل صفحه ) است نه خود جاوااسکریپت (مانند بازی های جاوااسکریپت یا گرافیک ایجاد شده با آن) مهم است که به این جزئیات دقت داشته باشیم
نتیجه برای تست DOM ، جاوا اسکریپت و تست کتابخانه ها به این شکل بود:
متاسفانه IE در نتایج تست نیست چون به دفعات در هنگام اجرای این تست crash کرد. در ضمن WebKit نسخه nightly نیز به خاطر وجود یک باگ در آن crash کرده و تست کردن آن امکان پذیر نبود.
اکنون ما نتایج دیگری می بینیم. مرورگر های بر پایه WebKit بهترین عملکرد را دارند در حالی که chrome از نظر سرعت بعد از نسخه قدیمی webkit قرار گرفته است. در اینجا TraceMonkey کمی عملکرد بهتری داشته است ولی باز به علت اینکه متد های tracing بر روی DOM نیز عمل نمی کنند [ این مورد هم در مقاله قبلی توضیح داده شده بود ] نتوانسته نهایت قدرت خود را نشان دهد. قابلیت tracing برای DOM احتمالا برای نسخه ۳.۲ فایرفاکس یا نسخه های بعدی آماده خواهد شد.
چیزی که کاملا روشن است این است که افزایش سرعت موتور های جاوا اسکریپت ادامه خواهد یافت.
منبع : سایت تبیان زنجان