V Firefox aktualizovaný JIT kompilátor, pod kódovým názvem WarpBuilder. Pro aktivaci nového JIT je v about:config navržena možnost „javascript.options.warp“.
Je třeba poznamenat, že WarpBuilder je pouze prvním krokem k zahrnutí nových optimalizací do prohlížeče, které se plánují realizovat během následujícího roku.
Nový JIT umožňuje zvýšit výkon JavaScriptového enginu SpiderMonkey díky zkrácení interních informací o typech sledovaných uvnitř enginu a aplikaci techniky mezipaměti mezikódu (CacheIR), dříve v „baseline“ interpretru bajtkódu, který zastává mezilehlou pozici mezi běžným interpretem a předkompilovaným JIT. Uvedené změny umožnily výrazně zjednodušit architekturu JIT, zvýšit odezvu, zkrátit dobu načítání stránky a snížit spotřebu paměti.
, což nový JIT umožnil vyřešit mnoho problémů starého JIT IonBuilder, jako jsou:
- Složitost implementace a potenciální bezpečnostní problémy;
- Další režijní náklady na kód Baseline/C++;
- Přílišná specializace, vedoucí k zbytečným rekompilacím;
- Tvorba mezikódu (Middle-level IR) v hlavním vláknu (v WarpBuilderu je hlavní sestavení mezikódu vyčleněno do samostatného vlákna);
- Další spotřeba paměti na uchovávání dat o typech a skupinách objektů (ObjectGroups).
V průměru při testech hodnotících výkon na základě vizuálních metrik, se při používání WarpBuilderu pozoruje zrychlení o 5-15%. Rychlost testu Speedometer se zvýšila o 10%. Testování na reálných stránkách ukázalo zkrácení doby načítání Google Docs o , ukazatel se při otevření sekce Android na Redditu zlepšil o , pdfpaint začal fungovat rychleji o . Spotřeba paměti v testu se snížila o 8%. statistiky v nástrojích pro vývojáře (devtools perf) také prokázaly snížení spotřeby paměti o 8%.
Zdroj: opennet.ru
