JIT-kompileringsytelsen har blitt merkbart forbedret i Firefox nattlige bygg

В nattlige bygg Firefox inkludert oppdatert JIT-kompilator, utviklet kodenavnet WarpBuilder. For å aktivere den nye JIT, er "javascript.options.warp" alternativet gitt i about:config.
Det bemerkes at WarpBuilder bare er det første skrittet mot å inkorporere nye optimaliseringer i nettleseren, som er planlagt implementert i løpet av neste år.

Den nye JIT forbedrer ytelsen til SpiderMonkey JavaScript-motoren ved å redusere intern typeinformasjon som spores i motoren og ved å bruke Intermediate Code Caching (CacheIR)-teknikken tidligere foreslått i "baseline"-bytekodetolkeren, som opptar en mellomnisje mellom en vanlig tolk og en pre-JIT-kompilator. Disse endringene gjorde det mulig å betydelig forenkle JIT-arkitekturen, øke responsen, redusere sideinnlastingstiden og redusere minneforbruket.

Det er notertat den nye JIT løste mange problemer med den gamle JIT IonBuilder, for eksempel:

  • Kompleksitet av implementering og potensielle sikkerhetsproblemer;
  • Ekstra overhead for Baseline/C++-kode;
  • Overdreven spesialisering som fører til unødvendige rekompileringer;
  • Genererer mellomkode MIR (Middelsnivå IR) i hovedtråden (i WarpBuilder er hovedenheten til mellomkoden plassert i en egen tråd);
  • Ekstra minneforbruk for lagring av data om typer og grupper av objekter (ObjectGroups).

I gjennomsnitt, i tester som evaluerer ytelse basert på visuelle beregninger, observeres en 5-15 % hastighetsøkning ved bruk av WarpBuilder. Fullføringsgraden for hastighetsmålerens test økte med 10 %. Testing på ekte nettsteder viste en reduksjon i lastetiden for Google Dokumenter med 20%, indeks SpeedIndex når du åpner Android-delen på Reddit forbedret med 13%, begynte pdfpaint å fungere raskere på 18%. Minneforbruk i testen tp6 redusert med 8 %. Data statistikk i utviklerverktøy (devtools perf) viste også en 8% reduksjon i minneforbruk.

Kilde: opennet.ru

Legg til en kommentar