عملکرد جمع‌آوری JIT در ساخت‌های شبانه فایرفاکس به طرز چشمگیری بهبود یافته است

В ساخت های شبانه فایرفاکس مشمول کامپایلر JIT به روز شده، توسعه یافته با کد WarpBuilder. برای فعال کردن JIT جدید، گزینه "javascript.options.warp" در about:config ارائه شده است.
خاطرنشان می شود که WarpBuilder تنها اولین گام در جهت گنجاندن بهینه سازی های جدید در مرورگر است که قرار است در سال آینده پیاده سازی شوند.

JIT جدید عملکرد موتور جاوا اسکریپت SpiderMonkey را با کاهش اطلاعات نوع داخلی ردیابی شده در موتور و با استفاده از تکنیک ذخیره کد میانی (CacheIR) قبلا بهبود می بخشد. پیشنهاد شده در مفسر بایت کد "پایه"، که یک جایگاه میانی بین یک مفسر معمولی و یک کامپایلر پیش از JIT را اشغال می کند. این تغییرات باعث شد تا معماری JIT به میزان قابل توجهی ساده شود، پاسخگویی افزایش یابد، زمان بارگذاری صفحه کاهش یابد و مصرف حافظه کاهش یابد.

یادداشت شده - مورد دقت نظر واقع شدهکه JIT جدید بسیاری از مشکلات JIT IonBuilder قدیمی را حل کرده است، مانند:

  • پیچیدگی پیاده سازی و مشکلات امنیتی احتمالی؛
  • سربار اضافی برای کد Baseline/C++.
  • تخصص بیش از حد که منجر به کامپایل های غیر ضروری می شود.
  • تولید کد میانی MIR (IR سطح متوسط) در رشته اصلی (در WarpBuilder، مجموعه اصلی کد میانی در یک موضوع جداگانه قرار می گیرد).
  • مصرف حافظه اضافی برای ذخیره داده ها در مورد انواع و گروه های اشیاء (ObjectGroups).

به طور متوسط، در تست هایی که عملکرد را بر اساس معیارهای بصری ارزیابی می کنند، هنگام استفاده از WarpBuilder، سرعت 5-15٪ مشاهده می شود. میزان تکمیل تست سرعت سنج 10 درصد افزایش یافته است. آزمایش بر روی سایت های واقعی کاهش زمان بارگذاری Google Docs را نشان داد ٪۱۰۰، فهرست مطالب SpeedIndex هنگام باز کردن بخش Android در Reddit بهبود یافته است ٪۱۰۰، pdfpaint سریعتر شروع به کار کرد ٪۱۰۰. مصرف حافظه در آزمون tp6 8 درصد کاهش یافته است. اطلاعات آمار در ابزارهای توسعه دهنده (devtools perf) نیز کاهش 8 درصدی در مصرف حافظه را نشان می دهد.

منبع: opennet.ru

اضافه کردن نظر