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.

Zdroj: opennet.ru

Pridať komentár