Performanse JIT kompilacije značajno su poboljšane u noćnim verzijama Firefoxa

В noćne građe Firefox uključen ažurirani JIT kompajler, razvijanje kodnog naziva WarpBuilder. Da biste omogućili novi JIT, opcija "javascript.options.warp" dostupna je u about:config.
Napominje se da je WarpBuilder samo prvi korak prema ugradnji novih optimizacija u preglednik, koje se planiraju implementirati tijekom sljedeće godine.

Novi JIT poboljšava izvedbu SpiderMonkey JavaScript mehanizma smanjenjem internih informacija o vrsti koje se prate unutar mehanizma i upotrebom tehnike Intermediate Code Caching (CacheIR) koja je prije toga zaprosio u “osnovnom” interpreteru bajtkoda, koji zauzima srednju nišu između običnog interpretera i pre-JIT prevoditelja. Ove promjene omogućile su značajno pojednostavljenje JIT arhitekture, povećanje odziva, smanjenje vremena učitavanja stranice i smanjenje potrošnje memorije.

Zabilježeno jeda je novi JIT riješio mnoge probleme starog JIT IonBuildera, kao što su:

  • Složenost implementacije i mogući sigurnosni problemi;
  • Dodatni troškovi za Baseline/C++ kod;
  • Pretjerana specijalizacija koja dovodi do nepotrebnih ponovnih kompilacija;
  • Generiranje međukoda MIR (IR srednje razine) u glavnoj niti (u WarpBuilderu, glavni sklop međukoda smješten je u zasebnu nit);
  • Dodatna potrošnja memorije za pohranu podataka o vrstama i grupama objekata (ObjectGroups).

U prosjeku, u testovima koji procjenjuju izvedbu na temelju vizualnih metrika, primijećeno je ubrzanje od 5-15% kada se koristi WarpBuilder. Stopa dovršetka testa brzinomjera povećana je za 10%. Testiranje na stvarnim web-lokacijama pokazalo je smanjenje vremena učitavanja Google dokumenata za 20%, indeks SpeedIndex prilikom otvaranja odjeljka Android na Redditu poboljšano za 13%, pdfpaint je počeo raditi brže 18%. Potrošnja memorije u testu tp6 smanjen za 8%. Pokazatelji statistika u alatima za razvojne programere (devtools perf) također je pokazala smanjenje potrošnje memorije za 8%.

Izvor: opennet.ru

Dodajte komentar