JIT-kompileringsprestandan har märkbart förbättrats i Firefox nattliga versioner

В nattliga byggen firefox ingår uppdaterad JIT-kompilator, tagit fram kodnamnet WarpBuilder. För att aktivera den nya JIT, finns alternativet "javascript.options.warp" i about:config.
Det noteras att WarpBuilder bara är det första steget mot att införliva nya optimeringar i webbläsaren, som planeras att implementeras under nästa år.

Den nya JIT förbättrar prestandan för SpiderMonkey JavaScript-motorn genom att minska den interna typinformationen som spåras i motorn och genom att använda tekniken Intermediate Code Caching (CacheIR) tidigare föreslagen i "baseline"-bytekodtolkaren, som upptar en mellanliggande nisch mellan en vanlig tolk och en pre-JIT-kompilator. Dessa ändringar gjorde det möjligt att avsevärt förenkla JIT-arkitekturen, öka responsen, minska sidladdningstiden och minska minnesförbrukningen.

Det är noteratatt den nya JIT löste många problem med den gamla JIT IonBuilder, till exempel:

  • Komplexiteten i implementeringen och potentiella säkerhetsproblem;
  • Ytterligare overhead för Baseline/C++-kod;
  • Överdriven specialisering som leder till onödiga omkompileringar;
  • Genererar mellankod MIR (Mellannivå IR) i huvudtråden (i WarpBuilder placeras huvudenheten för mellankoden i en separat tråd);
  • Ytterligare minnesförbrukning för lagring av data om typer och grupper av objekt (ObjectGroups).

I genomsnitt, i tester som utvärderar prestanda baserat på visuella mätvärden, observeras en 5-15% hastighetsökning när du använder WarpBuilder. Genomförandegraden för hastighetsmätartest ökade med 10 %. Tester på riktiga webbplatser visade en minskning av laddningstiden för Google Dokument med 20%, index SpeedIndex när du öppnar Android-sektionen på Reddit förbättras med 13%, pdfpaint började fungera snabbare på 18%. Minnesförbrukning i testet tp6 minskade med 8 %. Indikatorer statistik i utvecklarverktyg (devtools perf) visade också en 8% minskning av minnesförbrukningen.

Källa: opennet.ru

Lägg en kommentar