V Firefox posodobljen JIT prevajalnik, pod kodnim imenom WarpBuilder. Za aktivacijo novega JIT je v about:config predlagana možnost «javascript.options.warp».
Ugotavlja se, da je WarpBuilder le prvi korak k vključitvi novih optimizacij v brskalnik, ki jih je načrtovano izvesti v prihodnjem letu.
Nov JIT omogoča povečanje zmogljivosti JavaScript motorja SpiderMonkey z zmanjšanjem notranjih informacij o tipih, ki jih spremlja znotraj motorja, in uporabo tehnik predpomnjenja vmesnega kode (CacheIR), ki je bila prej v «baseline» interpreterju bajtkode, ki deluje kot vmesnik med običajnim interpreterjem in predhodnim JIT prevajalnikom. Omenjene spremembe so omogočile znatno poenostavitev arhitekture JIT, povečanje odzivnosti, skrajšanje časa nalaganja strani in zmanjšanje porabe pomnilnika.
, kar je omogočilo, da je nov JIT rešil mnoge težave starega JIT IonBuilder, kot so:
- Zahtevnost implementacije in potencialne težave z varnostjo;
- Dodatni stroški za Baseline/C++ kodo;
- Prekomerna specializacija, ki vodi do nepotrebnih ponovnih prevodov;
- Oblikovanje vmesnega kode (Middle-level IR) v glavnem toku (v WarpBuilder je glavna zgradba vmesnega kode premaknjena v ločen tok);
- Dodatna poraba pomnilnika za shranjevanje podatkov o tipih in skupinah objektov (ObjectGroups).
Povprečno so testi, ki ocenjujejo zmogljivost na podlagi vizualnih meritev, pokazali 5-15% pospešitev pri uporabi WarpBuilder. Hitrost testa Speedometer se je povečala za 10%. Testiranje na realnih spletnih straneh je pokazalo zmanjšanje časa nalaganja Google Docs za , kazalnik se je ob odpiranju razdelka Android na Redditu izboljšal za , pdfpaint je deloval hitreje za . Poraba pomnilnika v testu se je zmanjšala za 8%. statistik v orodjih za razvijalce (devtools perf) so prav tako pokazali 8% zmanjšanje porabe pomnilnika.
Izvor: opennet.ru
