Výkon kompilácie JIT sa výrazne zlepšil v nočných zostavách Firefoxu
В nočné stavby Firefox zapnuté aktualizovaný kompilátor JIT, vyvinuté s kódovým označením WarpBuilder. Ak chcete povoliť nový JIT, možnosť „javascript.options.warp“ je k dispozícii v súbore about:config.
Je potrebné poznamenať, že WarpBuilder je len prvým krokom k začleneniu nových optimalizácií do prehliadača, ktorých implementácia sa plánuje v priebehu budúceho roka.
Nový JIT zlepšuje výkon SpiderMonkey JavaScript motora znížením interných informácií o type sledovaných v rámci motora a použitím techniky Intermediate Code Caching (CacheIR) predtým. navrhované v „základnom“ prekladači bytecode, ktorý zaberá medziľahlú medzeru medzi bežným interpretom a kompilátorom pre-JIT. Tieto zmeny umožnili výrazne zjednodušiť architektúru JIT, zvýšiť odozvu, skrátiť čas načítania stránky a znížiť spotrebu pamäte.
Je poznamenanéže nový JIT vyriešil mnohé problémy starého JIT IonBuildera, ako napríklad:
Zložitosť implementácie a potenciálne bezpečnostné problémy;
Dodatočná réžia pre kód Baseline/C++;
Prílišná špecializácia vedúca k zbytočným rekompiláciám;
Generovanie medzikódu MIR (IR na strednej úrovni) v hlavnom vlákne (vo WarpBuilderi je hlavná zostava stredného kódu umiestnená v samostatnom vlákne);
Dodatočná spotreba pamäte na ukladanie údajov o typoch a skupinách objektov (ObjectGroups).
V testoch, ktoré hodnotia výkon na základe vizuálnych metrík, sa v priemere pri používaní WarpBuilder pozoruje zrýchlenie o 5 – 15 %. Miera dokončenia testu rýchlomera sa zvýšila o 10 %. Testovanie na reálnych stránkach ukázalo skrátenie času načítania dokumentov Google o 20%, index SpeedIndex pri otvorení sekcie Android na Reddite vylepšené o 13%, pdfpaint začal pracovať rýchlejšie 18%. Spotreba pamäte v teste tp6 znížil o 8 %. Dáta štatistiky vo vývojárskych nástrojoch (devtools perf) tiež ukázali 8% zníženie spotreby pamäte.