Firefox-ning tungi tuzilmalarida JIT kompilyatsiyasining samaradorligi sezilarli darajada yaxshilandi

В tungi qurilishlar Firefox yoqilgan yangilangan JIT kompilyatori, rivojlangan kod nomi WarpBuilder. Yangi JITni yoqish uchun "javascript.options.warp" opsiyasi about:config ichida taqdim etilgan.
Qayd etilishicha, WarpBuilder brauzerga yangi optimallashtirishlarni kiritish yo‘lidagi birinchi qadam bo‘lib, kelgusi yil davomida joriy etilishi rejalashtirilgan.

Yangi JIT SpiderMonkey JavaScript dvigatelining ishlashini dvigatelda kuzatilgan ichki turdagi ma'lumotlarni kamaytirish va ilgari Intermediate Code Cache (CacheIR) texnikasidan foydalangan holda yaxshilaydi. taklif qilingan oddiy tarjimon va JITdan oldingi kompilyator o'rtasida oraliq joyni egallagan "asosiy" bayt-kod tarjimonida. Ushbu o'zgarishlar JIT arxitekturasini sezilarli darajada soddalashtirish, sezgirlikni oshirish, sahifalarni yuklash vaqtini qisqartirish va xotira sarfini kamaytirish imkonini berdi.

Qayd etilganyangi JIT eski JIT IonBuilder-ning ko'plab muammolarini hal qildi, masalan:

  • Amalga oshirishning murakkabligi va mumkin bo'lgan xavfsizlik muammolari;
  • Baseline/C++ kodi uchun qo'shimcha xarajatlar;
  • Keraksiz qayta kompilyatsiya qilishga olib keladigan ortiqcha ixtisoslashuv;
  • Oraliq kodni yaratish ME (O'rta darajadagi IR) asosiy ipda (WarpBuilderda oraliq kodning asosiy yig'ilishi alohida ipga joylashtirilgan);
  • Ob'ektlar turlari va guruhlari (ObjectGroups) haqidagi ma'lumotlarni saqlash uchun qo'shimcha xotira sarfi.

Vizual o'lchovlar asosida ishlashni baholaydigan testlarda o'rtacha hisobda WarpBuilder-dan foydalanganda 5-15% tezlashuv kuzatiladi. Spidometr sinovini yakunlash darajasi 10% ga oshdi. Haqiqiy saytlarda o'tkazilgan testlar Google Docs yuklash vaqtining qisqarganini ko'rsatdi 20%, indeks Tezlik indeksi tomonidan yaxshilangan Reddit-da Android bo'limini ochganda 13%, pdfpaint tezroq ishlay boshladi 18%. Sinovda xotira iste'moli tp6 8 foizga kamaydi. ko'rsatkichlar Ishlab chiquvchilar vositalaridagi statistika (devtools perf) ham xotira sarfini 8% ga qisqartirgan.

Manba: opennet.ru

a Izoh qo'shish