PDA

مشاهده نسخه کامل : مقایسه سرعت اجرای جاوا اسکریپت در chrome ، فایرفاکس و



™Ali
04-09-08, 15:07
مطالب زیادی بر روی وب در مورد سرعت بالای مرورگر chrome نوشته شده که بخش اعظم این مطلب به شکل صحیحی این مرورگر را با مرورگر های دیگر مقایسه نکرده. امروز در وبلاگ جان رسیگ مطلبی ارسال شد (Only the registered members can see the link) که ترجمه آن را در اینجا می آورم. اخیرا گوگل یک موتور جاوا اسکریپت جدید به نام V8 Engine را معرفی کرده است که بر روی مرورگر جدید این شرکت که chrome نام دارد، استفاده شده است.
تعداد زیادی موتور جاوااسکریپت در حال حاضر موجود است که بر روی مرورگر های مختلف از آنها استفاده شده است:


JavaScriptCore: این موتور در حال حاضر بر روی safari/webkit نصب شده و تا نسخه 3.1 سافاری از این موتور استفاده می کند.
Squirrelfish (Only the registered members can see the link) : این موتور برای safari نسخه 4 آماده شده است و در حال حاضر نسخه نهایی آن آماده نیست ولی در نسخه nightly این مروگر می شود آن را تست کرد. توجه : متاسفانه تست Dromaeo بر روی نسخه nightly این مرورگر با شکست مواجه شد لذا این موتور از لیست نتایج حذف گردید.
V8 (Only the registered members can see the link) : موتور استفاده شده در مرورگر chrome شرکت گوگل
SpiderMonkey : این موتور بر روی فایرفاکس 3 نصب شده و تا آخرین نسخه فایرفاکس از این موتور استفاده می کند
TraceMonkey (Only the registered members can see the link) : که برای نسخه 3.1 فایرفاکس آماده شده است و در حال حاضر در نسخه nightly فایرفاکس وجود دارد و در حالت عادی غیر فعال است. مطالبی در مورد این موتور جدید در پست “آیا فایرفاکس با SpiderMonkey وب را متحول خواهد کرد ؟ (Only the registered members can see the link)” نوشته ام.
Futhark : این موتور بر روی اپرا 9.5 و نسخه های جدیدتر نصب است
IE JScript : که بر روی نسخه های مختلف اینترنت اکسپلورر از آن استفاده می شود.

تست های مختلفی بر روی این مرورگر های انجام گرفته و مرورگر کروم شرکت گوگل نیز در بین این مرورگر ها وجود دارد. به این ارقام و اعداد به خوبی دقت کنید تا بتوانید دیدی درست نسبت به عملکرد مرورگر ها به دست آورید.
ما مرورگر ها را با سه مجموعه تست ، آزمودیم که لیست این آزمون ها به قرار ذیل است:




SunSpider (Only the registered members can see the link) : یک تست مشهور جاوا اسکریپت است که توسط تیم WebKit ایجاد شده است. این تست فقط موتور های جاوا اسکریپت را از لحاظ کارآیی تست می کند ( هیچ عملیاتی در بخش رندر کردن یا ایجاد تغییرات در درخت DOM انجام نمی شود). این مجموعه دارای تست های زیادی است (مانند آبجکت ها، فراخوانی توابع، معادلات ریاضی، حلقه ها و … ).
V8 Benchmark (Only the registered members can see the link) : یک تست که توسط تیم V8 ساخته شده و تنها کارایی موتور های جاوا اسکریپت را می سنجد آن هم با تاکید زیاد بر روی کارایی موتور ها در اجرای حلقه ها در برنامه.
Dromaeo : این مجموعه تست توسط موزیلا طراحی شده است و javascript, DOM و کارایی کتابخانه های جاوااسکریپت را بررسی می کند. این مجموعه شامل تست های فراوانی است و بخش اعظم این تست ها، کارایی DOM و کتابخانه های جاوااسکریپت را بررسی می کنند.

SunSpider



اجازه بدهید به آمار تست سان اسپایدر تیم وب کیت نگاهی بندازیم (که مجموعه ای از تست ها را برای آزمودن موتور ها در اجرای جاوا اسکریپت خالص و ناب را شامل می شود). نتایج بدین گونه بود:
Only the registered members can see the link
تقریبا نتایجی نزدیک به هم را مشاهده می کنیم که chrome با اختلافی اندک در این تست پیروز است (به نتیجه افتضاح اینترنت اکسپلورر توجه نکنید). کروم در این تست به یقین سریعترین بوده است. البته دقت کنید که در این تست موتور tracemonkey جدید استفاده نشده است و در حالت عادی تست انجام گرفته است.

Brendan Eich مقایسه ای را شب گذشته بین Tracemonkey و V8 انجام داده که نتیجه اش اینگونه بوده است:
Only the registered members can see the link
در اینجا کاملا مشهود است که موتور TraceMonkey که تنها 2 ماه بر روی آن کار شده است نتایجی به مراتب بهتر از موتور V8 که بیشتر از دو سال صرف برنامه نویسی آن شده است، عمل کرده است.
چیزی که موتور TraceMonkey را عقب تر از رقیبان قرار می دهد این است که در این لحظه هنوز متد های Tracing بر روی حلقه ها کار نمی کنند [ در این مورد در مقاله قبل توضیح داده بودم ] و همین مورد باعث می شود که در برخی از تست ها موتور V8 تا 10 بار سریعتر از TraceMonkey باشد. هر گاه نسخه 3.1 مرورگر فایرفاکس آماده شد من حتما این تست ها رو از نو انجام خواهم داد.


تست V8 شرکت گوگل
تیم کروم مجموعه تست خودشان را منتشر کرده اند که شامل تست های کمی است (البته این تست ها با SunSpider تفاوت دارند ) و به شدت موتور ها را برای تست قابلیت در حلقه ها تست می کنند. نتایج این تست بدین شکل بود:
Only the registered members can see the link
ما می بینیم که chrome در این تست رقیبان خود را له می کند. البته این تست خودش جای بحث دارد. این تست تنها بر روی بخشی از جاوا اسکریپت تاکید دارد شاید تنها دقایق اندکی مرورگر درگیر این حالت شود و شامل کارایی واقعی مرورگر نمی شود.
در ضمن دقت کنید که در این تست TraceMonkey عملکرد ضعیفی دارد ولی به یاد داشته باشید که قبلا توضیح دادم که tracing در حال حاضر بر روی حلقه ها کار نمی کند.


تست Dromaeo به همراه DOM
در پایان، اجازه بدهید نگاهی کلی به عملکرد موتور ها در اجرای فایل های جاوااسکریپت بیندازیم. من در حال حاضر بر روی مجموعه تست های Dromaeo (Only the registered members can see the link) کار می کنم و در حال اضافه کردن تعداد زیادی از تست های DOM و تست های مربوط به کتابخانه های جاوا اسکریپت هستم. این تست ها تصویر بهتری در مورد عملکرد یک مرورگر در حالت عادی (مثلا وب گردی ساده) می دهد.
دقت کنید که دلیل کند بودن بیشتر صفحات وب به خاطر DOM (مانند مرتب کردن خانه های یک جدول یا کلا دستکاری اجزای داخل صفحه ) است نه خود جاوااسکریپت (مانند بازی های جاوااسکریپت یا گرافیک ایجاد شده با آن) مهم است که به این جزئیات دقت داشته باشیم
نتیجه برای تست DOM ، جاوا اسکریپت و تست کتابخانه ها به این شکل بود:
Only the registered members can see the link
متاسفانه IE در نتایج تست نیست چون به دفعات در هنگام اجرای این تست crash کرد. در ضمن WebKit نسخه nightly نیز به خاطر وجود یک باگ در آن crash کرده و تست کردن آن امکان پذیر نبود.
اکنون ما نتایج دیگری می بینیم. مرورگر های بر پایه WebKit بهترین عملکرد را دارند در حالی که chrome از نظر سرعت بعد از نسخه قدیمی webkit قرار گرفته است. در اینجا TraceMonkey کمی عملکرد بهتری داشته است ولی باز به علت اینکه متد های tracing بر روی DOM نیز عمل نمی کنند [ این مورد هم در مقاله قبلی توضیح داده شده بود ] نتوانسته نهایت قدرت خود را نشان دهد. قابلیت tracing برای DOM احتمالا برای نسخه 3.2 فایرفاکس یا نسخه های بعدی آماده خواهد شد.
چیزی که کاملا روشن است این است که افزایش سرعت موتور های جاوا اسکریپت ادامه خواهد یافت.

منبع : 4GOOSH.COM

Shahryar
04-09-08, 15:10
منبع : 4GOOSH.COM