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

В noćne gradnje Firefox uključeno ažuriran JIT kompajler, razvijen kodnog naziva WarpBuilder. Da biste omogućili novi JIT, opcija "javascript.options.warp" je data u about:config.
Napominje se da je WarpBuilder samo prvi korak ka ugrađivanju novih optimizacija u pretraživač, koje se planiraju implementirati u narednoj godini.

Novi JIT poboljšava performanse SpiderMonkey JavaScript motora smanjenjem internih informacija o tipu praćenim unutar motora i korištenjem tehnike srednjeg keširanja koda (CacheIR) ranije predloženo u bajt-kod interpreteru, koji zauzima posrednu nišu između običnog tumača i pre-JIT kompajlera. Ove promjene su omogućile značajno pojednostavljenje JIT arhitekture, povećanje odziva, smanjenje vremena učitavanja stranica i smanjenje potrošnje memorije.

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

  • Složenost implementacije i potencijalni sigurnosni problemi;
  • Dodatni troškovi za osnovni/C++ kod;
  • Pretjerana specijalizacija koja vodi do nepotrebnih ponovnih kompilacija;
  • Generisanje međukoda ME (IR srednjeg nivoa) u glavnoj niti (u WarpBuilderu, glavni sklop međukoda je smešten u posebnu nit);
  • Dodatna potrošnja memorije za pohranjivanje podataka o tipovima i grupama objekata (ObjectGroups).

U proseku, u testovima koji procenjuju performanse na osnovu vizuelnih metrika, primećeno je ubrzanje od 5-15% kada se koristi WarpBuilder. Stopa završetka testa brzinomjera povećana je za 10%. Testiranje na stvarnim stranicama pokazalo je smanjenje vremena učitavanja Google dokumenata 20%, index SpeedIndex prilikom otvaranja odjeljka Android na Redditu poboljšano za 13%, pdfpaint je počeo brže raditi 18%. Potrošnja memorije u testu tp6 smanjen za 8%. Indikatori statistika u programerskim alatima (devtools perf) je također pokazala smanjenje potrošnje memorije za 8%.

izvor: opennet.ru

Dodajte komentar