Loading

2012-05-04

Better code optimization decisions for V8

در نگارش های جاری بتا و توسعه کروم، موتور جاوا اسکریپت V8 از الگوریتم جدیدی برای بهینه سازی استفاده می کند. این الگوریتم یک سازوکار دو مرحله ای است که در آن V8 تصمیم می گیرد که که با چه شیوه ای کد جاوا اسکرسپت را ترجمه کند. در گذشته V8 در هر میلی ثانیه یک توقف کوتاه انجام می داد تا به بررسی توابع جاری و بهینه سازی آنها بپردازد. این روش در برنامه هایی با زمان اجرای طولانی بسیار عالی عمل می کند اما در برنامه هایی که زمان اجرای کمی دارند، هر میلی ثانیه نیز با ارزش است و این وقفه ها باعث کند شدن فرایند می گردد. همچنین از آنجا که V8 در شرایط گوناگون راهکار های متفاوتی را برای بهینه سازی به کار می برد، در بعضی موارد ممکن است در اجرای برخی کدهای جاوا اسکریپت حیاتی بازنگری کند.
V8 در نگارش جدید از 2 مترجم بهره می برد. مترجم اول به محض دریافت کد، آن را سریعا و با کمترین بهینه سازی به زبان ماشین ترجمه می کند. اما مترجم بهینه ساز دوم که کدهای بسیار سریعتری را تولید می کند، به زمان بیشتری نیاز دارد. به این ترتیب V8 به صورت انتخابی، با پردازش کد و تعیین نوع نیاز بهینه سازی آن، کد را به ترجمه گر ها ارسال می کند. بررسی های انجام شده توسط تیم کروم نشان می دهد استفاده از الگوریتم های جدید تا 25% عملکرد V8 را بهتر کرده است.

بررسی عملکرد V8 در نگارش های 18 و 19 کروم (زمان کمت به منی نتیجه بهتر است). عکس از Chromium blog

----------------------------
Source
Publisher: Chromium blog
Date/Time: 05/01/2012 - --:-- --
Author: Jakob Kummerow, Software Engineer
----------------------------

No comments:

Post a Comment

Copyright © 2012 Google News|PERSIAN. All rights reserved.
Google News|PERSIAN is a part of Digital Age DreamsTM.
This blog works independently of Google Inc.


Simple Template RE-DESIGN.
Powered by BloggerTM.