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.