Výkon kompilace JIT byl znatelně zlepšen v nočních sestavách Firefoxu

В noční stavby Firefox v ceně aktualizovaný kompilátor JIT, rozvinutý s kódovým označením WarpBuilder. Chcete-li povolit nový JIT, je v about:config k dispozici možnost „javascript.options.warp“.
Je třeba poznamenat, že WarpBuilder je pouze prvním krokem k začlenění nových optimalizací do prohlížeče, jejichž implementace je plánována v průběhu příštího roku.

Nový JIT zlepšuje výkon SpiderMonkey JavaScript enginu snížením počtu interních informací o typu sledovaných v rámci enginu a dřívějším použitím techniky Intermediate Code Caching (CacheIR). navržený v „základním“ interpretu bytecode, který zaujímá mezilehlou mezeru mezi běžným interpretem a kompilátorem před JIT. Tyto 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.

Je zaznamenánože nový JIT vyřešil mnoho problémů starého JIT IonBuilderu, jako například:

  • Složitost implementace a potenciální bezpečnostní problémy;
  • Další režie pro kód Baseline/C++;
  • Přílišná specializace vedoucí ke zbytečným rekompilacím;
  • Generování mezikódu MIR (Middle-level IR) v hlavním vláknu (ve WarpBuilderu je hlavní sestava mezikódu umístěna v samostatném vláknu);
  • Další spotřeba paměti pro ukládání dat o typech a skupinách objektů (ObjectGroups).

V testech, které hodnotí výkon na základě vizuálních metrik, je v průměru pozorováno 5-15% zrychlení při použití WarpBuilderu. Rychlost dokončení testu rychloměru se zvýšila o 10 %. Testování na skutečných webech ukázalo zkrácení doby načítání Dokumentů Google o 20%, index SpeedIndex při otevření sekce Android na Redditu vylepšeno o 13%, pdfpaint začal pracovat rychleji 18%. Spotřeba paměti v testu tp6 klesla o 8 %. ukazatele statistiky ve vývojářských nástrojích (devtools perf) také ukázaly 8% snížení spotřeby paměti.

Zdroj: opennet.ru

Přidat komentář