Programmering

Mozilla Firefox øker JavaScript-ytelsen

Firefox-brukere kan forvente forbedret JavaScript-ytelse i Firefox 83-nettleseren, med Warp-oppdateringen til SpiderMonkey JavaScript-motoren aktivert som standard.

Også kalt WarpBuilder, forbedrer Warp respons og minnebruk og øker sidelastingen ved å gjøre endringer i JiT (just-in-time) kompilatorer. Optimalisering av JiT er endret for å stole utelukkende på CacheIRs enkle lineære bytecode-format, spesielt CacheIR-data samlet inn ved baseline-nivåene. Den nye arkitekturen som er utnyttet i nettleseren, blir også beskrevet som mer vedlikeholdbar og låser opp ytterligere SpiderMonkey-forbedringer.

Firefox 83 ble utgitt i beta 20. oktober og er planlagt utgitt 17. november. Warp har vist seg å være raskere enn Ion, SpiderMonkeys forrige optimaliserings-JiT, inkludert 20 prosent forbedring av Google Docs lastetid. Andre JavaScript-intensive nettsteder som Netflix og Reddit har også vist forbedring.

Basering av Warp på CacheIR muliggjorde fjerning av kode gjennom motoren som var nødvendig for å spore globale type inferensdata som ble brukt av IonBuilder, noe som resulterte i hastigheter. Selv om IonBuilder og WarpBuilder begge produserer Ion MIR, en mellomrepresentasjon som brukes av den optimaliserende JiT-backenden, hadde IonBuilder mye kompleks kode som ikke var nødvendig i WarpBuilder. Warp kan også gjøre mer arbeid utenfor tråden og trenger færre rekompileringer. Planene krever fortsatt optimalisering av Warp, som for tiden er tregere enn ion på noen syntetiske referanser.

Warp har erstattet frontenden - MIR-byggefasen - til IonMonkey JiT. Planer krever at den gamle koden og arkitekturen skal fjernes, noe som sannsynligvis vil skje i Firefox 85. Det forventes ytterligere forbedringer av ytelsen og minnebruk. Mozilla vil også fortsette å gradvis optimalisere bakenden av IonMonkey JiT, ettersom Mozilla mener det fortsatt er rom for forbedring for JavaScript-intensive arbeidsbelastninger. Også under utvikling er et verktøy for webutviklere og Mozilla for å utforske CacheIR-data for en JavaScript-funksjon.

$config[zx-auto] not found$config[zx-overlay] not found