JIT kompiliavimo našumas buvo pastebimai patobulintas naudojant „Firefox“ nakties versijas

В naktiniai pastatymai "Firefox" įjungtas atnaujintas JIT kompiliatorius, išvystyta kodiniu pavadinimu WarpBuilder. Norint įjungti naują JIT, apie:config pateikiama parinktis „javascript.options.warp“.
Pažymima, kad „WarpBuilder“ yra tik pirmas žingsnis į naršyklę įtraukiant naujus optimizavimus, kuriuos planuojama įgyvendinti per ateinančius metus.

Naujasis JIT pagerina „SpiderMonkey JavaScript“ variklio veikimą, sumažindamas vidinio tipo informaciją, stebimą variklyje ir naudodamas tarpinio kodo talpyklos (CacheIR) techniką anksčiau. pasiūlė „pagrindiniame“ baitinio kodo interpretatoriuje, kuris užima tarpinę nišą tarp įprasto vertėjo ir išankstinio JIT kompiliatoriaus. Šie pakeitimai leido žymiai supaprastinti JIT architektūrą, padidinti reagavimą, sumažinti puslapio įkėlimo laiką ir sumažinti atminties sąnaudas.

Pažymimakad naujasis JIT išsprendė daug senojo JIT IonBuilder problemų, tokių kaip:

  • Įgyvendinimo sudėtingumas ir galimos saugumo problemos;
  • Papildomos bazinės linijos/C++ kodo išlaidos;
  • Pernelyg didelė specializacija, dėl kurios atsiranda nereikalingų perkompiliacijų;
  • Tarpinio kodo generavimas (Vidurinio lygio IR) pagrindinėje gijoje (WarpBuilder pagrindinis tarpinio kodo mazgas dedamas į atskirą giją);
  • Papildomos atminties sąnaudos duomenims apie objektų tipus ir grupes saugoti (ObjectGroups).

Vidutiniškai atliekant testus, kuriuose našumas vertinamas pagal vizualią metriką, naudojant WarpBuilder pastebimas 5-15% pagreitis. Spidometro testo užbaigimo rodiklis padidėjo 10 proc. Bandymai realiose svetainėse parodė, kad „Google“ dokumentų įkėlimo laikas sutrumpėjo 20%, indeksas Greičio indeksas atidarius Android skyrių Reddit patobulinta 13%, pdfpaint pradėjo veikti greičiau 18%. Atminties suvartojimas teste tp6 sumažėjo 8 proc. Duomenys kūrėjų įrankių (devtools perf) statistika taip pat parodė, kad atminties suvartojimas sumažėjo 8%.

Šaltinis: opennet.ru

Добавить комментарий