Zmogljivost prevajanja JIT je bila opazno izboljšana pri nočnih gradnjah Firefoxa

В nočne gradnje Firefox vklopljen posodobljen prevajalnik JIT, razviti s kodnim imenom WarpBuilder. Za omogočanje novega JIT je v about:config na voljo možnost "javascript.options.warp".
Opozoriti je treba, da je WarpBuilder le prvi korak k vključevanju novih optimizacij v brskalnik, ki naj bi jih uvedli v naslednjem letu.

Novi JIT izboljšuje zmogljivost mehanizma JavaScript SpiderMonkey z zmanjšanjem notranjih informacij o vrsti, ki se sledijo znotraj mehanizma, in s predhodno uporabo tehnike predpomnjenja vmesne kode (CacheIR). predlagano v tolmaču bajtne kode »baseline«, ki zavzema vmesno nišo med običajnim tolmačem in prevajalnikom pred JIT. Te spremembe so omogočile znatno poenostavitev arhitekture JIT, povečanje odzivnosti, zmanjšanje časa nalaganja strani in zmanjšanje porabe pomnilnika.

Opaženo jeda je novi JIT rešil veliko težav starega JIT IonBuilderja, kot so:

  • Kompleksnost izvedbe in morebitne varnostne težave;
  • Dodatni stroški za kodo Baseline/C++;
  • Prekomerna specializacija, ki vodi do nepotrebnih ponovnih prevajanj;
  • Generiranje vmesne kode MIR (IR na srednji ravni) v glavni niti (v WarpBuilderju je glavni sklop vmesne kode postavljen v ločeno nit);
  • Dodatna poraba pomnilnika za shranjevanje podatkov o vrstah in skupinah objektov (ObjectGroups).

Pri testih, ki ocenjujejo zmogljivost na podlagi vizualnih meritev, je pri uporabi WarpBuilder opaziti 5-15-odstotno pospešitev. Stopnja dokončanja testa merilnika hitrosti se je povečala za 10 %. Testiranje na resničnih spletnih mestih je pokazalo skrajšanje časa nalaganja Google Dokumentov za 20%, indeks SpeedIndex ko odprete razdelek Android na Redditu, izboljšan za 13%, je pdfpaint začel delovati hitreje 18%. Poraba pomnilnika v testu tp6 zmanjšal za 8 %. Kazalniki statistika v orodjih za razvijalce (devtools perf) je pokazala tudi 8-odstotno zmanjšanje porabe pomnilnika.

Vir: opennet.ru

Dodaj komentar